{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 章节I. PA80选股策略"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 选股策略\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "PA80 选股策略分为四步："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "\n",
    ">1. 对五个指标分别排名\n",
    "2. 每只股票的排名进行加权计算评分\n",
    "3. 选出评分前80的股票\n",
    "4. 每隔20个交易日调仓一次"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "五指标模型:  $0.3EPSGrw+0.25ForwardEP+0.2ROE+0.15NeOprMarGr+0.1DY24$\n",
    "\n",
    "> \n",
    "1. *EPSGrw*: 未来12个月EPS增长率\n",
    "2. *ForwardEP*: 未来12个月EP\n",
    "3. *ROE*: 过去12个月ROE\n",
    "4. *NeOprMarGr*: (营业利润-投资收益)过去12个月/营业收入\n",
    "5. *DY24*：红利率（过去24个月红利收入/股票制定日总市值）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. PA80策略回测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from WindPy import *\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from datetime import *\n",
    "import matplotlib.pyplot as plt\n",
    "import os.path\n",
    "import xlwt\n",
    "import xlrd\n",
    "import datetime\n",
    "from IPython.core.display import Image\n",
    "#from sqlalchemy import create_engine,text\n",
    "#from sqlalchemy.orm import sessionmaker\n",
    "os.chdir(\"C:\\\\PA80\") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#计算涨跌幅序列，夏普比率，最大回撤，波动率\n",
    "def net_index(list1):\n",
    "    drawdown=0\n",
    "    for i in range(len(list1)):\n",
    "        a=0\n",
    "        for j in range(0,i+1):\n",
    "            if a<list1[j]:\n",
    "                a=list1[j]\n",
    "        if drawdown<1-list1[j]/a:\n",
    "            drawdown=1-list1[j]/a\n",
    "    yie=[]\n",
    "    for i in range(len(list1)-1):\n",
    "        yie.append(np.log(list1[i+1]/list1[i]))\n",
    "    sharp_ratio=(np.sum(yie)/len(yie)*250-0.03)/((np.std(pd.Series(yie))*np.sqrt(250)))\n",
    "    std=np.std(pd.Series(yie))*np.sqrt(250)\n",
    "    return drawdown,sharp_ratio,std\n",
    "    \n",
    "#对字典排序，按值从大到小排序，d[1]为按照value排序    \n",
    "def rank_reverse(dict1):\n",
    "    list1=sorted(dict1.items(),key=lambda d:d[1],reverse=True)\n",
    "    dict2={}\n",
    "    for i in range(len(list1)):\n",
    "        dict2[list1[i][0]]=i+1\n",
    "    return dict2\n",
    "    \n",
    "#对字典排序，按值从小到大排序，默认\n",
    "def rank_order(dict1):\n",
    "    list1=sorted(dict1.items(),key=lambda d:d[1],reverse=False)\n",
    "    dict2={}\n",
    "    for i in range(len(list1)):\n",
    "        dict2[list1[i][0]]=i+1\n",
    "    return dict2\n",
    "\n",
    "def Normal_ic_Ratio(dict1,dict2):\n",
    "    for i in range(len(dict1)):\n",
    "        if i == 0:\n",
    "            ic_ratio = 0\n",
    "        else:\n",
    "            ic_ratio = np.corrcoef(dict1[i-1][0],dict2[i][0])\n",
    "    return ic_ratio \n",
    "\n",
    "def chg_drawdown(stock_value):\n",
    "    drawdownlist=[]\n",
    "    pct_chglist=[]\n",
    "    for value in stock_value:\n",
    "        i = stock_value.index(value)\n",
    "        if i == 0:\n",
    "            down=0\n",
    "            chg_amt=0\n",
    "        else:\n",
    "            down = abs(value/np.max(pd.Series(stock_value[0:i]))-1)\n",
    "            chg_amt=stock_value[i]/stock_value[i-1]-1\n",
    "        drawdownlist.append(down)\n",
    "        pct_chglist.append(chg_amt)\n",
    "    return drawdownlist,pct_chglist\n",
    "    \n",
    "\n",
    "           \n",
    "def generate_df(stock_value,index_value,datelist,index,top):\n",
    "    drawdown,sharp_ratio,std=net_index(stock_value)\n",
    "    drawdownlist,pct_chglist=chg_drawdown(stock_value)\n",
    "    returnlist = list(pd.Series(stock_value)/stock_value[0]-1)\n",
    "    index_return = list(pd.Series(index_value)/index_value[0]-1)\n",
    "    dataDF=pd.DataFrame({'date':datelist,'return':returnlist,'drawdown':drawdownlist,'pct_chg':pct_chglist,'index_return':index_return,'top':top,'maxdrawdown':drawdown,'sharp_ratio':sharp_ratio,'stdlist':std,'stock_value':stock_value,'index_chg':index_chglist})\n",
    "    return dataDF  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def f_1(start,stop,r):\n",
    "    w.start()\n",
    "    code_list_set=[]\n",
    "    #调仓频率\n",
    "    frequency=20\n",
    "    #区间所有交易日\n",
    "    trade=w.tdays(start,stop).Data[0]\n",
    "\n",
    "    #调仓日期\n",
    "    i=0\n",
    "    change=[]\n",
    "    for day in trade:\n",
    "        if (i%frequency==0):\n",
    "            change.append(trade[i])\n",
    "        i+=1\n",
    "    # 6因子权重\n",
    "    #r1=0.0084021; r2=0.402558;  r3=0.145843889;  r4=0.207200765;  r5=0.084902392; r6=0.06276645; r7=0.0; r8=0.088326422   #7因子权重\n",
    "    #r1=0.006222643; r2=0.298136084;  r3=0.108012584;  r4=0.153453739;  r5=0.062879061; r6=0.046485091; r7=0.259395888; r8=0.065414911  #8因子权重\n",
    "    top=80; \n",
    "    select=[];   \n",
    "    index = '000300.SH'  \n",
    "    for date in change:\n",
    "        i= change.index(date)\n",
    "        print ('selecting ',date.strftime(\"%Y-%m-%d\"))\n",
    "        code_list=w.wset(\"sectorconstituent\",\"date=\"+date.strftime(\"%Y-%m-%d\")+\";sectorid=a001010100000000;field=wind_code\").Data[0]\n",
    "    #   code_list=w.wset(\"sectorconstituent\",\"date=\"+date.strftime(\"%Y-%m-%d\")+\";windcode=\"+index+\";field=wind_code\").Data[0]\n",
    "        west_eps=w.wsd(code_list, \"west_eps_FTM\", date, date, \"Fill=Previous;PriceAdj=F\").Data[0]  #一致预测eps 未来12个月\n",
    "        eps_now=w.wsd(code_list, \"eps_ttm\", date, date, \"Fill=Previous;PriceAdj=F\").Data[0]  #当前eps \n",
    "        west_pe=w.wsd(code_list, \"pe_est_ftm\", date, date, \"Fill=Previous;PriceAdj=F\").Data[0]  #预测pe, 未来12个月\n",
    "        roe=w.wsd(code_list, \"roe_ttm\",date, date, \"Fill=Previous;PriceAdj=F\").Data[0]  #历史roe  净资产收益率\n",
    "        profit=w.wsd(code_list, \"op_ttm\", date, date, \"unit=1;Fill=Previous;PriceAdj=F\").Data[0]  #营业利润\n",
    "        revenue=w.wsd(code_list, \"or_ttm\", date, date, \"unit=1;Fill=Previous;PriceAdj=F\").Data[0]  #营业收入\n",
    "        brate=w.wsd(code_list, \"div_aualaccmdivpershare\", date, date, 'year='+str(date.year)+';Fill=Previous;PriceAdj=F').Data[0]  #年度累计单位分红\n",
    "        bps = w.wsd(code_list, \"bps_new\", date, date, \"Fill=Previous;PriceAdj=F\").Data[0]\n",
    "        roic=w.wsd(code_list,'roa_ttm',date,date,'Fill=Previous;PriceAdj=F').Data[0]  #roic因子\n",
    "        pb=w.wsd(code_list, \"pb_lf\", date, date, \"Fill=Previous;PriceAdj=F\").Data[0]  #pb因子\n",
    "        ipo_date = w.wsd(code_list, \"ipo_date\", date, date, \"Fill=Previous\").Data[0]\n",
    "        trade_status=w.wsd(code_list, \"trade_status\", date, date).Data[0]     # 读取交易状态 \n",
    "        f1={}; f2={}; f3={}; f4={}; f5={};f6={};f7={};f8={}; trade_s={}; ipo_d ={}\n",
    "        for code in code_list:\n",
    "            j = code_list.index(code)\n",
    "            if trade_status[j] is None:\n",
    "                trade_s[code]=10000\n",
    "            elif trade_status[j].encode('utf-8')==u'交易'.encode('utf-8'):\n",
    "                trade_s[code]=0     #0为正常交易\n",
    "            else:\n",
    "                trade_s[code]=10000\n",
    "            if ipo_date[j] is None or ipo_date[j]!=ipo_date[j] or type(ipo_date[j])==type('123'):\n",
    "                ipo_d[code]=10000\n",
    "            elif  (date.year - ipo_date[j].year) <= 2:\n",
    "                ipo_d[code]=10000\n",
    "            else:\n",
    "                ipo_d[code]=0\n",
    "            if west_eps[j] is None or west_eps[j]!=west_eps[j] or type(west_eps[j])==type('123') or eps_now[j]!=eps_now[j] or type(eps_now[j])==type('123') or eps_now[j] is None or eps_now[j]<0.00000001:\n",
    "                f1[code]=-10000.0\n",
    "            else:\n",
    "                f1[code]=west_eps[j]/eps_now[j]-1   #EPSGrw因子，越大收益越大\n",
    "            if roe[j] is None or roe[j]!=roe[j] or type(roe[j])==type('123'):\n",
    "                f2[code] = -10000.0\n",
    "            else:\n",
    "                f2[code] = roe[j]     #roe， 越大收益越大\n",
    "            if west_pe[j] is None or west_pe[j]!=west_pe[j] or type(west_pe[j])==type('123') or eps_now[j] is None or west_eps[j]<0.000000001:\n",
    "                f3[code] = -10000.0   \n",
    "            else:\n",
    "                f3[code] = 1/west_pe[j]     #forword ep 越大收益越大\n",
    "            if profit[j] is None or profit[j]!=profit[j] or type(profit[j])==type('123') or revenue[j] is None or revenue[j]!=revenue[j] or type(revenue[j])==type('123') or revenue[j]<1.0:\n",
    "                f4[code]=-10000.0\n",
    "            else:\n",
    "                f4[code]=profit[j]/revenue[j]   #neopr因子，越大收益越大\n",
    "            if brate[j] is None or brate[j]!=brate[j] or type(brate[j])==type('123'):\n",
    "                f5[code]=-10000.0\n",
    "            else:\n",
    "                f5[code]=brate[j]  #PR因子，越大收益越大\n",
    "            if bps[j] is None or bps[j]!=bps[j] or type(bps[j])==type('123'):\n",
    "                f6[code]=-10000.0\n",
    "            else:\n",
    "                f6[code]=bps[j]  #BPS因子，越大收益越大\n",
    "            if roic[j] is None or roic[j]!=roic[j] or type(roic[j])==type('123'):\n",
    "                f7[code]=-10000.0\n",
    "            else:\n",
    "                f7[code]=roic[j]  #roic因子\n",
    "            if pb[j] is None or pb[j]!=pb[j] or type(pb[j])==type('123') or pb[j]<0:\n",
    "                f8[code]=10000.0\n",
    "            else:\n",
    "                f8[code]=pb[j]   #pb因子，越小收益越大  \n",
    "\n",
    "        rank1=rank_reverse(f1)\n",
    "        rank2=rank_reverse(f2)\n",
    "        rank3=rank_reverse(f3)\n",
    "        rank4=rank_reverse(f4)\n",
    "        rank5=rank_reverse(f5)\n",
    "        rank6=rank_reverse(f6)\n",
    "        rank7=rank_reverse(f7)\n",
    "        rank8=rank_reverse(f8)\n",
    "        rank_mix={}\n",
    "        if len(r) == 5:\n",
    "            r1=r[0];r2=r[1];r3=r[2];r4=r[3];r5 =r[4]\n",
    "            for code in code_list:\n",
    "                rank_mix[code]=r1*rank1[code]+r2*rank2[code]+r3*rank3[code]+r4*rank4[code]+r5*rank5[code]+trade_s[code]+ipo_d[code]\n",
    "            final_result=sorted(rank_mix.items(),key=lambda d:d[1],reverse=False)\n",
    "        elif len(r) == 6:\n",
    "            r1=r[0];r2=r[1];r3=r[2];r4=r[3];r5 =r[4];r6 = r[5]\n",
    "            for code in code_list:\n",
    "                rank_mix[code]=r1*rank1[code]+r2*rank2[code]+r3*rank3[code]+r4*rank4[code]+r5*rank5[code]+r6*rank6[code]+trade_s[code]+ipo_d[code]\n",
    "            final_result=sorted(rank_mix.items(),key=lambda d:d[1],reverse=False)\n",
    "        elif len(r) == 7:\n",
    "            r1=r[0];r2=r[1];r3=r[2];r4=r[3];r5 =r[4];r6 = r[5];r7 = r[6]\n",
    "            for code in code_list:\n",
    "                rank_mix[code]=r1*rank1[code]+r2*rank2[code]+r3*rank3[code]+r4*rank4[code]+r5*rank5[code]+r6*rank6[code]+r7*rank7[code]+trade_s[code]+ipo_d[code]\n",
    "            final_result=sorted(rank_mix.items(),key=lambda d:d[1],reverse=False)\n",
    "        else:\n",
    "            r1=r[0];r2=r[1];r3=r[2];r4=r[3];r5 =r[4];r6 = r[5];r7 = r[6];r8 = r[7]\n",
    "            for code in code_list:\n",
    "                rank_mix[code]=r1*rank1[code]+r2*rank2[code]+r3*rank3[code]+r4*rank4[code]+r5*rank5[code]+r6*rank6[code]+r7*rank7[code]+r8*rank8[code]+trade_s[code]+ipo_d[code]\n",
    "            final_result=sorted(rank_mix.items(),key=lambda d:d[1],reverse=False)\n",
    "        selecti={};\n",
    "        for j in range(top):       \n",
    "            selecti[final_result[j][0]] = j\n",
    "    #    select.append(selecti.keys())\n",
    "        select.append(list(selecti.keys()))\n",
    "\n",
    "        for code in code_list:\n",
    "            if code not in code_list_set:\n",
    "                code_list_set.append(code)\n",
    "        \n",
    "    return select,code_list_set,trade,change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def f_2(select,code_list_set,trade,change,top,start,stop):\n",
    "    w.start()\n",
    "    original_data1=w.wsd(code_list_set,'close',w.tdaysoffset(-30,start).Data[0][0],stop,'Fill=Previous;PriceAdj=F')\n",
    "    original_data2=w.wsd(code_list_set,'close',start,stop,'Fill=Previous;PriceAdj=F')\n",
    "    #original_data3=w.wsd(code_list_set, \"pct_chg\", dayZeroOne , date, \"Fill=Previous\")\n",
    "    price_info={}\n",
    "    price_series={} \n",
    "    #pct_chg_series={}           \n",
    "\n",
    "    for code in code_list_set:\n",
    "        h=code_list_set.index(code)\n",
    "        price_info[code]=original_data2.Data[h]\n",
    "        price_series[code]=original_data1.Data[h]\n",
    "\n",
    "\n",
    "    dayZeroOne = w.tdaysoffset(-1, start).Data[0]\n",
    "    DAY = dayZeroOne[0].strftime('%Y%m%d')\n",
    "    cash=8000000.0\n",
    "    value_open=[]\n",
    "    value_close=[]\n",
    "    value_stock_close = []\n",
    "    stock_close=[]      #一天收盘的股票仓位\n",
    "    stock_open=[]       #一天开盘的股票仓位\n",
    "    stock_hand={}       #实时股票仓位变量 \n",
    "    cash_open=[]\n",
    "    cash_close=[]\n",
    "    high_rec = {}\n",
    "    SDREC = []\n",
    "    x=2\n",
    "    new_cash = 0\n",
    "    value = 0\n",
    "    tax_rate = 0.001\n",
    "    delete_all=[]\n",
    "    add_all=[]\n",
    "    high_price=[]\n",
    "    for today in trade:\n",
    "        stock_hand = {}\n",
    "        new_cash =[]\n",
    "        high_rec = {}\n",
    "        #计算开盘时候的股票仓位，用前一交易日的收盘价结算\n",
    "        # 开盘的cash和stock\n",
    "        i=trade.index(today)\n",
    "        if today in change:\n",
    "            cash_open.append(0)     \n",
    "            if i==0:             \n",
    "                value_open.append(float(cash))\n",
    "                k = change.index(today)\n",
    "                per_value = value_open[-1]/float(top)\n",
    "                for j in range(top):\n",
    "                    CODE = select[k][j]\n",
    "                    PRICE = w.wsd(CODE,'close',DAY,DAY,'Fill=Previous;PriceAdj=F').Data[0][0]\n",
    "                    if PRICE is None:\n",
    "                        PRICE = 10000\n",
    "                    stock_hand[select[k][j]] = np.int((per_value/PRICE)/100.)*100\n",
    "                stock_open.append(stock_hand.copy())        #当期股票 \n",
    "                stock_values = 0\n",
    "                for m in range(len(stock_hand.keys())):\n",
    "                    stock_values += list(stock_hand.values())[m] * price_info[list(stock_hand.keys())[m]][i]\n",
    "                new_cash = cash_open[-1] + value_open[0] - stock_values\n",
    "            else:\n",
    "                value_open.append(float(value_close[-1]))\n",
    "                k = change.index(today)\n",
    "                per_value = value_open[-1]/float(top)\n",
    "                for j in range(top):\n",
    "                    stock_hand[select[k][j]] = np.int((per_value/price_info[select[k][j]][i-1])/100.)*100\n",
    "                stock_open.append(stock_hand.copy()) #当期股票 \n",
    "                stock_values = 0\n",
    "                for m in range(len(stock_hand.keys())):\n",
    "                    stock_values += list(stock_hand.values())[m] * price_info[list(stock_hand.keys())[m]][i]\n",
    "                new_cash = cash_open[-1] + float(value_close[-1]) - stock_values\n",
    "            stock_hold = stock_hand.copy()\n",
    "        else:\n",
    "            cash_open.append(float(cash_close[-1]))  ###\n",
    "            stock_open.append(stock_close[-1].copy())\n",
    "            stock_hand = stock_open[-1].copy()\n",
    "            new_cash = cash_open[-1]\n",
    "            value = []\n",
    "            value = cash_open[-1]\n",
    "            for key in stock_hand.keys():\n",
    "                value += stock_hand[key]*price_info[key][i-1]\n",
    "            value_open.append(float(value))\n",
    "            for key in add_list:\n",
    "                new_cash -= stock_hold[str(key)]*price_info[key][i-1]\n",
    "                stock_hand[str(key)] = stock_hold[str(key)]\n",
    "                stock_open[-1][str(key)] = stock_hold[str(key)]\n",
    "            for key in delete_list:\n",
    "                new_cash += stock_hand[str(key)]*high_price[-1][str(key)]*(1-x*sd)\n",
    "                stock_hand.pop(str(key))\n",
    "                stock_open[-1].pop(str(key))\n",
    "        if today in change:\n",
    "            if i != 0:\n",
    "                for key in delete_list:\n",
    "                    if key in stock_hold.keys(): \n",
    "                        new_cash += stock_hold[str(key)]*high_price[-1][str(key)]*(1-x*sd)\n",
    "                        stock_hand.pop(str(key)) \n",
    "                        stock_open[-1].pop(str(key))\n",
    "        if i!= 0:\n",
    "            delete_all.append(delete_list)\n",
    "            add_all.append(add_list)\n",
    "        else:\n",
    "            delete_all.append([])\n",
    "            add_all.append([])\n",
    "        #日内止损\n",
    "        delete_list = []\n",
    "        add_list = []\n",
    "        #搜索最高价\n",
    "        for key in stock_hand.keys():\n",
    "            high = 0\n",
    "            low = 1000\n",
    "            j = 0\n",
    "            while key in stock_open[j-1].keys():    #搜索实际持有记录，取实际持有以来的最高价\n",
    "                if high < price_info[key][i+j]:\n",
    "                    high = price_info[key][i+j]\n",
    "                j-=1\n",
    "                if i+j <= 0:\n",
    "                    break\n",
    "            # std 根据前20日涨跌幅标准差来确定是否删除股票\n",
    "            yie = []\n",
    "            for t in range(i-len(trade)-21,i-len(trade)-1):\n",
    "                yie.append(np.log(price_series[key][t]/price_series[key][t-1]).copy())\n",
    "            sd=np.std(yie)\n",
    "            SDREC.append(sd)\n",
    "            #判别标准为若今日收盘价小于历史最高价的（1-2*前20日涨跌幅的标准差)，则剔除股票\n",
    "            if price_info[key][i]/high <= (1-x*sd):\n",
    "                delete_list.append(str(key))\n",
    "                high_rec[key] = high\n",
    "        for key in stock_hold.keys(): \n",
    "            if (price_info[key][i]/price_info[key][i-1]-1 >= 0.03) and (key not in stock_hand.keys()):\n",
    "                add_list.append(str(key))\n",
    "        high_price.append(high_rec)\n",
    "        #delete_list = [] \n",
    "        #收盘结算\n",
    "        cash_close.append(float(new_cash))\n",
    "        stock_close.append(stock_hand.copy())\n",
    "        value = 0\n",
    "        if today in change:\n",
    "            for key in stock_hand:\n",
    "                value += (stock_hand[key]*price_info[key][i])*(1-tax_rate)\n",
    "        else:\n",
    "            for key in stock_hand:\n",
    "                if key in add_list:\n",
    "                    value += (stock_hand[key]*price_info[key][i])*(1-tax_rate)\n",
    "                else:\n",
    "                    value += stock_hand[key]*price_info[key][i]\n",
    "        value_stock_close.append(float(value))\n",
    "        value += new_cash\n",
    "        value_close.append(float(value))\n",
    "    return value_close,stock_close,delete_all,add_all"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def f_3(delete_all,add_all,stock_close,trade,datelist):\n",
    "    w.start()\n",
    "    delete_all_new=[]\n",
    "    for item in delete_all:\n",
    "        j = delete_all.index(item)\n",
    "        date = trade[j]\n",
    "        if len(item) != 0:\n",
    "            x = w.wsd(item, 'sec_name',date,date).Data[0]\n",
    "            delete_all_new.append(x)\n",
    "        else:\n",
    "            delete_all_new.append([])\n",
    "    add_all_new=[]\n",
    "    for item in add_all:\n",
    "        j = add_all.index(item)\n",
    "        date = trade[j]\n",
    "        if len(item) != 0:\n",
    "            x = w.wsd(item, 'sec_name',date,date).Data[0]\n",
    "            add_all_new.append(x)\n",
    "        else:\n",
    "            add_all_new.append([])       \n",
    "            \n",
    "    stock_close_new=[]\n",
    "    for i in range(len(stock_close)):\n",
    "        item=list(stock_close[i].keys())\n",
    "        date = trade[i]\n",
    "        if len(item) != 0:\n",
    "            x = w.wsd(item, 'sec_name',date,date).Data[0]\n",
    "            stock_close_new.append(x)\n",
    "        else:\n",
    "            stock_close_new.append([])\n",
    "    data_stock = pd.DataFrame(stock_close_new, index = datelist)\n",
    "    data_delete = pd.DataFrame(delete_all_new, index=datelist)\n",
    "    data_add = pd.DataFrame(add_all_new, index=datelist)\n",
    "    return data_delete, data_add, data_stock     "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "selecting  2017-01-03\n",
      "selecting  2017-02-07\n",
      "selecting  2017-03-07\n",
      "selecting  2017-04-06\n",
      "selecting  2017-05-05\n",
      "selecting  2017-06-06\n",
      "selecting  2017-07-04\n",
      "selecting  2017-08-01\n",
      "selecting  2017-08-29\n",
      "selecting  2017-09-26\n",
      "selecting  2017-10-31\n",
      "selecting  2017-11-28\n"
     ]
    }
   ],
   "source": [
    "start= '20170101'\n",
    "stop = '20171203'\n",
    "r = [0.3,0.2,0.25,0.15,0.1]\n",
    "select1,code_list_set1,trade1,change1 = f_1(start,stop,r)\n",
    "value_close1,stock_close1,delete_all1,add_all1 = f_2(select1,code_list_set1,trade1,change1,80,start,stop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "index = '000300.SH'\n",
    "top=80\n",
    "index_value=w.wsd(index,'close',start,stop).Data[0]\n",
    "datelist = [dt.strftime('%Y-%m-%d') for dt in trade1]\n",
    "changelist = [dt.strftime('%Y-%m-%d') for dt in change1]\n",
    "index_downlist,index_chglist=chg_drawdown(index_value)    \n",
    "data_return = generate_df(value_close1,index_value,datelist,index,top)  #top80 结果\n",
    "data_delete, data_add, data_stock = f_3(delete_all1,add_all1,stock_close1,trade1,datelist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>drawdown</th>\n",
       "      <th>index_chg</th>\n",
       "      <th>index_return</th>\n",
       "      <th>maxdrawdown</th>\n",
       "      <th>pct_chg</th>\n",
       "      <th>return</th>\n",
       "      <th>sharp_ratio</th>\n",
       "      <th>stdlist</th>\n",
       "      <th>stock_value</th>\n",
       "      <th>top</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2017-01-03</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.991986e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2017-01-04</td>\n",
       "      <td>0.012790</td>\n",
       "      <td>0.007805</td>\n",
       "      <td>0.007805</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.012790</td>\n",
       "      <td>0.012790</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.094200e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2017-01-05</td>\n",
       "      <td>0.000961</td>\n",
       "      <td>-0.000155</td>\n",
       "      <td>0.007648</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000961</td>\n",
       "      <td>0.011817</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.086425e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2017-01-06</td>\n",
       "      <td>0.005919</td>\n",
       "      <td>-0.005975</td>\n",
       "      <td>0.001627</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.004963</td>\n",
       "      <td>0.006795</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.046294e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2017-01-09</td>\n",
       "      <td>0.002374</td>\n",
       "      <td>0.004850</td>\n",
       "      <td>0.006485</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.008342</td>\n",
       "      <td>0.015194</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.113414e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2017-01-10</td>\n",
       "      <td>0.002600</td>\n",
       "      <td>-0.001674</td>\n",
       "      <td>0.004801</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.002600</td>\n",
       "      <td>0.012554</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.092318e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2017-01-11</td>\n",
       "      <td>0.009357</td>\n",
       "      <td>-0.007080</td>\n",
       "      <td>-0.002313</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.006775</td>\n",
       "      <td>0.005694</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.037495e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2017-01-12</td>\n",
       "      <td>0.014163</td>\n",
       "      <td>-0.005060</td>\n",
       "      <td>-0.007361</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.004851</td>\n",
       "      <td>0.000816</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.998507e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2017-01-13</td>\n",
       "      <td>0.020786</td>\n",
       "      <td>0.000690</td>\n",
       "      <td>-0.006677</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.006719</td>\n",
       "      <td>-0.005909</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.944765e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2017-01-16</td>\n",
       "      <td>0.026697</td>\n",
       "      <td>-0.000141</td>\n",
       "      <td>-0.006816</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.006036</td>\n",
       "      <td>-0.011909</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.896813e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2017-01-17</td>\n",
       "      <td>0.025637</td>\n",
       "      <td>0.002082</td>\n",
       "      <td>-0.004749</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.001089</td>\n",
       "      <td>-0.010832</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.905413e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2017-01-18</td>\n",
       "      <td>0.024196</td>\n",
       "      <td>0.003911</td>\n",
       "      <td>-0.000856</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.001479</td>\n",
       "      <td>-0.009369</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.917106e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2017-01-19</td>\n",
       "      <td>0.025936</td>\n",
       "      <td>-0.003017</td>\n",
       "      <td>-0.003871</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.001784</td>\n",
       "      <td>-0.011137</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.902982e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2017-01-20</td>\n",
       "      <td>0.022065</td>\n",
       "      <td>0.007689</td>\n",
       "      <td>0.003788</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.003974</td>\n",
       "      <td>-0.007207</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.934392e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2017-01-23</td>\n",
       "      <td>0.019150</td>\n",
       "      <td>0.002740</td>\n",
       "      <td>0.006539</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.002981</td>\n",
       "      <td>-0.004247</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.958041e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2017-01-24</td>\n",
       "      <td>0.019180</td>\n",
       "      <td>0.000110</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000030</td>\n",
       "      <td>-0.004277</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.957803e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2017-01-25</td>\n",
       "      <td>0.019700</td>\n",
       "      <td>0.003404</td>\n",
       "      <td>0.010076</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000530</td>\n",
       "      <td>-0.004805</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.953582e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2017-01-26</td>\n",
       "      <td>0.015977</td>\n",
       "      <td>0.003571</td>\n",
       "      <td>0.013684</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.003798</td>\n",
       "      <td>-0.001026</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.983789e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2017-02-03</td>\n",
       "      <td>0.016827</td>\n",
       "      <td>-0.006927</td>\n",
       "      <td>0.006662</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000864</td>\n",
       "      <td>-0.001889</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.976893e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>2017-02-06</td>\n",
       "      <td>0.013504</td>\n",
       "      <td>0.002590</td>\n",
       "      <td>0.009269</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.003380</td>\n",
       "      <td>0.001485</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.003854e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>2017-02-07</td>\n",
       "      <td>0.014484</td>\n",
       "      <td>-0.002229</td>\n",
       "      <td>0.007019</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000994</td>\n",
       "      <td>0.000490</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>7.995901e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>2017-02-08</td>\n",
       "      <td>0.007936</td>\n",
       "      <td>0.005230</td>\n",
       "      <td>0.012285</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.006644</td>\n",
       "      <td>0.007137</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.049028e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>2017-02-09</td>\n",
       "      <td>0.000945</td>\n",
       "      <td>0.003844</td>\n",
       "      <td>0.016176</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.008952</td>\n",
       "      <td>0.016153</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.121081e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>2017-02-10</td>\n",
       "      <td>0.004551</td>\n",
       "      <td>0.005063</td>\n",
       "      <td>0.021321</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.004551</td>\n",
       "      <td>0.020777</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.158037e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>2017-02-13</td>\n",
       "      <td>0.005500</td>\n",
       "      <td>0.006676</td>\n",
       "      <td>0.028139</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.005500</td>\n",
       "      <td>0.026391</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.202903e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>2017-02-14</td>\n",
       "      <td>0.000530</td>\n",
       "      <td>-0.000137</td>\n",
       "      <td>0.027998</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.000530</td>\n",
       "      <td>0.026935</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.207254e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>2017-02-15</td>\n",
       "      <td>0.013148</td>\n",
       "      <td>-0.004101</td>\n",
       "      <td>0.023782</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.013148</td>\n",
       "      <td>0.013433</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.099343e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>2017-02-16</td>\n",
       "      <td>0.005325</td>\n",
       "      <td>0.005617</td>\n",
       "      <td>0.029533</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.007928</td>\n",
       "      <td>0.021467</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.163553e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>2017-02-17</td>\n",
       "      <td>0.011590</td>\n",
       "      <td>-0.005665</td>\n",
       "      <td>0.023701</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.006299</td>\n",
       "      <td>0.015034</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.112135e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>2017-02-20</td>\n",
       "      <td>0.000008</td>\n",
       "      <td>0.014599</td>\n",
       "      <td>0.038647</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.011734</td>\n",
       "      <td>0.026944</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>8.207320e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>2017-10-23</td>\n",
       "      <td>0.009294</td>\n",
       "      <td>0.001005</td>\n",
       "      <td>0.176101</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.005410</td>\n",
       "      <td>0.274545</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.018615e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>2017-10-24</td>\n",
       "      <td>0.007741</td>\n",
       "      <td>0.007275</td>\n",
       "      <td>0.184658</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.001567</td>\n",
       "      <td>0.276543</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.020212e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>2017-10-25</td>\n",
       "      <td>0.004739</td>\n",
       "      <td>0.004433</td>\n",
       "      <td>0.189910</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.003026</td>\n",
       "      <td>0.280406</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.023299e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>2017-10-26</td>\n",
       "      <td>0.006757</td>\n",
       "      <td>0.004181</td>\n",
       "      <td>0.194884</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.002028</td>\n",
       "      <td>0.277810</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.021224e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>2017-10-27</td>\n",
       "      <td>0.007263</td>\n",
       "      <td>0.007110</td>\n",
       "      <td>0.203379</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000509</td>\n",
       "      <td>0.277159</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.020704e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>2017-10-30</td>\n",
       "      <td>0.007112</td>\n",
       "      <td>-0.003045</td>\n",
       "      <td>0.199716</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.000152</td>\n",
       "      <td>0.277353</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.020859e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>2017-10-31</td>\n",
       "      <td>0.006775</td>\n",
       "      <td>-0.000749</td>\n",
       "      <td>0.198817</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.000339</td>\n",
       "      <td>0.277786</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.021205e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>201</th>\n",
       "      <td>2017-11-01</td>\n",
       "      <td>0.005211</td>\n",
       "      <td>-0.002520</td>\n",
       "      <td>0.195796</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.001575</td>\n",
       "      <td>0.279799</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.022814e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>202</th>\n",
       "      <td>2017-11-02</td>\n",
       "      <td>0.017154</td>\n",
       "      <td>0.000128</td>\n",
       "      <td>0.195949</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.012006</td>\n",
       "      <td>0.264434</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.010534e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>203</th>\n",
       "      <td>2017-11-03</td>\n",
       "      <td>0.025076</td>\n",
       "      <td>-0.001110</td>\n",
       "      <td>0.194622</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.008061</td>\n",
       "      <td>0.254242</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.002389e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204</th>\n",
       "      <td>2017-11-06</td>\n",
       "      <td>0.025061</td>\n",
       "      <td>0.007061</td>\n",
       "      <td>0.203057</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.000015</td>\n",
       "      <td>0.254261</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.002404e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>205</th>\n",
       "      <td>2017-11-07</td>\n",
       "      <td>0.018818</td>\n",
       "      <td>0.008296</td>\n",
       "      <td>0.213037</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.006404</td>\n",
       "      <td>0.262294</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.008823e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206</th>\n",
       "      <td>2017-11-08</td>\n",
       "      <td>0.016335</td>\n",
       "      <td>-0.001539</td>\n",
       "      <td>0.211170</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.002530</td>\n",
       "      <td>0.265488</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.011376e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>207</th>\n",
       "      <td>2017-11-09</td>\n",
       "      <td>0.014567</td>\n",
       "      <td>0.006891</td>\n",
       "      <td>0.219516</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.001797</td>\n",
       "      <td>0.267762</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.013194e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>208</th>\n",
       "      <td>2017-11-10</td>\n",
       "      <td>0.011825</td>\n",
       "      <td>0.008835</td>\n",
       "      <td>0.230291</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.002782</td>\n",
       "      <td>0.271289</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.016012e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>209</th>\n",
       "      <td>2017-11-13</td>\n",
       "      <td>0.009113</td>\n",
       "      <td>0.003931</td>\n",
       "      <td>0.235126</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.002745</td>\n",
       "      <td>0.274778</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.018801e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>210</th>\n",
       "      <td>2017-11-14</td>\n",
       "      <td>0.009906</td>\n",
       "      <td>-0.006958</td>\n",
       "      <td>0.226533</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000800</td>\n",
       "      <td>0.273759</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.017986e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>211</th>\n",
       "      <td>2017-11-15</td>\n",
       "      <td>0.016795</td>\n",
       "      <td>-0.006265</td>\n",
       "      <td>0.218849</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.006959</td>\n",
       "      <td>0.264895</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.010903e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>212</th>\n",
       "      <td>2017-11-16</td>\n",
       "      <td>0.013916</td>\n",
       "      <td>0.007694</td>\n",
       "      <td>0.228227</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.002929</td>\n",
       "      <td>0.268600</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.013863e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>213</th>\n",
       "      <td>2017-11-17</td>\n",
       "      <td>0.026348</td>\n",
       "      <td>0.003858</td>\n",
       "      <td>0.232965</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.012608</td>\n",
       "      <td>0.252605</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.001080e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>214</th>\n",
       "      <td>2017-11-20</td>\n",
       "      <td>0.011990</td>\n",
       "      <td>0.005577</td>\n",
       "      <td>0.239842</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.014747</td>\n",
       "      <td>0.271077</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.015843e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>215</th>\n",
       "      <td>2017-11-21</td>\n",
       "      <td>0.004597</td>\n",
       "      <td>0.017826</td>\n",
       "      <td>0.261943</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.007483</td>\n",
       "      <td>0.280589</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.023445e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>216</th>\n",
       "      <td>2017-11-22</td>\n",
       "      <td>0.004161</td>\n",
       "      <td>0.002339</td>\n",
       "      <td>0.264895</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.000438</td>\n",
       "      <td>0.281150</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.023893e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>217</th>\n",
       "      <td>2017-11-23</td>\n",
       "      <td>0.012305</td>\n",
       "      <td>-0.029608</td>\n",
       "      <td>0.227444</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.008179</td>\n",
       "      <td>0.270672</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.015519e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>218</th>\n",
       "      <td>2017-11-24</td>\n",
       "      <td>0.007143</td>\n",
       "      <td>0.000440</td>\n",
       "      <td>0.227985</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.005227</td>\n",
       "      <td>0.277313</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.020827e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>219</th>\n",
       "      <td>2017-11-27</td>\n",
       "      <td>0.012112</td>\n",
       "      <td>-0.013220</td>\n",
       "      <td>0.211751</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.005005</td>\n",
       "      <td>0.270920</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.015718e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>220</th>\n",
       "      <td>2017-11-28</td>\n",
       "      <td>0.012131</td>\n",
       "      <td>0.001451</td>\n",
       "      <td>0.213509</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.000019</td>\n",
       "      <td>0.270896</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.015698e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>221</th>\n",
       "      <td>2017-11-29</td>\n",
       "      <td>0.001283</td>\n",
       "      <td>-0.000511</td>\n",
       "      <td>0.212890</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.013579</td>\n",
       "      <td>0.288153</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.029490e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>222</th>\n",
       "      <td>2017-11-30</td>\n",
       "      <td>0.007848</td>\n",
       "      <td>-0.011755</td>\n",
       "      <td>0.198632</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>-0.007848</td>\n",
       "      <td>0.278044</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.021411e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>223</th>\n",
       "      <td>2017-12-01</td>\n",
       "      <td>0.001702</td>\n",
       "      <td>-0.001988</td>\n",
       "      <td>0.196249</td>\n",
       "      <td>0.058097</td>\n",
       "      <td>0.006194</td>\n",
       "      <td>0.285961</td>\n",
       "      <td>2.379686</td>\n",
       "      <td>0.105878</td>\n",
       "      <td>1.027738e+07</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>224 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           date  drawdown  index_chg  index_return  maxdrawdown   pct_chg  \\\n",
       "0    2017-01-03  0.000000   0.000000      0.000000     0.058097  0.000000   \n",
       "1    2017-01-04  0.012790   0.007805      0.007805     0.058097  0.012790   \n",
       "2    2017-01-05  0.000961  -0.000155      0.007648     0.058097 -0.000961   \n",
       "3    2017-01-06  0.005919  -0.005975      0.001627     0.058097 -0.004963   \n",
       "4    2017-01-09  0.002374   0.004850      0.006485     0.058097  0.008342   \n",
       "5    2017-01-10  0.002600  -0.001674      0.004801     0.058097 -0.002600   \n",
       "6    2017-01-11  0.009357  -0.007080     -0.002313     0.058097 -0.006775   \n",
       "7    2017-01-12  0.014163  -0.005060     -0.007361     0.058097 -0.004851   \n",
       "8    2017-01-13  0.020786   0.000690     -0.006677     0.058097 -0.006719   \n",
       "9    2017-01-16  0.026697  -0.000141     -0.006816     0.058097 -0.006036   \n",
       "10   2017-01-17  0.025637   0.002082     -0.004749     0.058097  0.001089   \n",
       "11   2017-01-18  0.024196   0.003911     -0.000856     0.058097  0.001479   \n",
       "12   2017-01-19  0.025936  -0.003017     -0.003871     0.058097 -0.001784   \n",
       "13   2017-01-20  0.022065   0.007689      0.003788     0.058097  0.003974   \n",
       "14   2017-01-23  0.019150   0.002740      0.006539     0.058097  0.002981   \n",
       "15   2017-01-24  0.019180   0.000110      0.006649     0.058097 -0.000030   \n",
       "16   2017-01-25  0.019700   0.003404      0.010076     0.058097 -0.000530   \n",
       "17   2017-01-26  0.015977   0.003571      0.013684     0.058097  0.003798   \n",
       "18   2017-02-03  0.016827  -0.006927      0.006662     0.058097 -0.000864   \n",
       "19   2017-02-06  0.013504   0.002590      0.009269     0.058097  0.003380   \n",
       "20   2017-02-07  0.014484  -0.002229      0.007019     0.058097 -0.000994   \n",
       "21   2017-02-08  0.007936   0.005230      0.012285     0.058097  0.006644   \n",
       "22   2017-02-09  0.000945   0.003844      0.016176     0.058097  0.008952   \n",
       "23   2017-02-10  0.004551   0.005063      0.021321     0.058097  0.004551   \n",
       "24   2017-02-13  0.005500   0.006676      0.028139     0.058097  0.005500   \n",
       "25   2017-02-14  0.000530  -0.000137      0.027998     0.058097  0.000530   \n",
       "26   2017-02-15  0.013148  -0.004101      0.023782     0.058097 -0.013148   \n",
       "27   2017-02-16  0.005325   0.005617      0.029533     0.058097  0.007928   \n",
       "28   2017-02-17  0.011590  -0.005665      0.023701     0.058097 -0.006299   \n",
       "29   2017-02-20  0.000008   0.014599      0.038647     0.058097  0.011734   \n",
       "..          ...       ...        ...           ...          ...       ...   \n",
       "194  2017-10-23  0.009294   0.001005      0.176101     0.058097  0.005410   \n",
       "195  2017-10-24  0.007741   0.007275      0.184658     0.058097  0.001567   \n",
       "196  2017-10-25  0.004739   0.004433      0.189910     0.058097  0.003026   \n",
       "197  2017-10-26  0.006757   0.004181      0.194884     0.058097 -0.002028   \n",
       "198  2017-10-27  0.007263   0.007110      0.203379     0.058097 -0.000509   \n",
       "199  2017-10-30  0.007112  -0.003045      0.199716     0.058097  0.000152   \n",
       "200  2017-10-31  0.006775  -0.000749      0.198817     0.058097  0.000339   \n",
       "201  2017-11-01  0.005211  -0.002520      0.195796     0.058097  0.001575   \n",
       "202  2017-11-02  0.017154   0.000128      0.195949     0.058097 -0.012006   \n",
       "203  2017-11-03  0.025076  -0.001110      0.194622     0.058097 -0.008061   \n",
       "204  2017-11-06  0.025061   0.007061      0.203057     0.058097  0.000015   \n",
       "205  2017-11-07  0.018818   0.008296      0.213037     0.058097  0.006404   \n",
       "206  2017-11-08  0.016335  -0.001539      0.211170     0.058097  0.002530   \n",
       "207  2017-11-09  0.014567   0.006891      0.219516     0.058097  0.001797   \n",
       "208  2017-11-10  0.011825   0.008835      0.230291     0.058097  0.002782   \n",
       "209  2017-11-13  0.009113   0.003931      0.235126     0.058097  0.002745   \n",
       "210  2017-11-14  0.009906  -0.006958      0.226533     0.058097 -0.000800   \n",
       "211  2017-11-15  0.016795  -0.006265      0.218849     0.058097 -0.006959   \n",
       "212  2017-11-16  0.013916   0.007694      0.228227     0.058097  0.002929   \n",
       "213  2017-11-17  0.026348   0.003858      0.232965     0.058097 -0.012608   \n",
       "214  2017-11-20  0.011990   0.005577      0.239842     0.058097  0.014747   \n",
       "215  2017-11-21  0.004597   0.017826      0.261943     0.058097  0.007483   \n",
       "216  2017-11-22  0.004161   0.002339      0.264895     0.058097  0.000438   \n",
       "217  2017-11-23  0.012305  -0.029608      0.227444     0.058097 -0.008179   \n",
       "218  2017-11-24  0.007143   0.000440      0.227985     0.058097  0.005227   \n",
       "219  2017-11-27  0.012112  -0.013220      0.211751     0.058097 -0.005005   \n",
       "220  2017-11-28  0.012131   0.001451      0.213509     0.058097 -0.000019   \n",
       "221  2017-11-29  0.001283  -0.000511      0.212890     0.058097  0.013579   \n",
       "222  2017-11-30  0.007848  -0.011755      0.198632     0.058097 -0.007848   \n",
       "223  2017-12-01  0.001702  -0.001988      0.196249     0.058097  0.006194   \n",
       "\n",
       "       return  sharp_ratio   stdlist   stock_value  top  \n",
       "0    0.000000     2.379686  0.105878  7.991986e+06   80  \n",
       "1    0.012790     2.379686  0.105878  8.094200e+06   80  \n",
       "2    0.011817     2.379686  0.105878  8.086425e+06   80  \n",
       "3    0.006795     2.379686  0.105878  8.046294e+06   80  \n",
       "4    0.015194     2.379686  0.105878  8.113414e+06   80  \n",
       "5    0.012554     2.379686  0.105878  8.092318e+06   80  \n",
       "6    0.005694     2.379686  0.105878  8.037495e+06   80  \n",
       "7    0.000816     2.379686  0.105878  7.998507e+06   80  \n",
       "8   -0.005909     2.379686  0.105878  7.944765e+06   80  \n",
       "9   -0.011909     2.379686  0.105878  7.896813e+06   80  \n",
       "10  -0.010832     2.379686  0.105878  7.905413e+06   80  \n",
       "11  -0.009369     2.379686  0.105878  7.917106e+06   80  \n",
       "12  -0.011137     2.379686  0.105878  7.902982e+06   80  \n",
       "13  -0.007207     2.379686  0.105878  7.934392e+06   80  \n",
       "14  -0.004247     2.379686  0.105878  7.958041e+06   80  \n",
       "15  -0.004277     2.379686  0.105878  7.957803e+06   80  \n",
       "16  -0.004805     2.379686  0.105878  7.953582e+06   80  \n",
       "17  -0.001026     2.379686  0.105878  7.983789e+06   80  \n",
       "18  -0.001889     2.379686  0.105878  7.976893e+06   80  \n",
       "19   0.001485     2.379686  0.105878  8.003854e+06   80  \n",
       "20   0.000490     2.379686  0.105878  7.995901e+06   80  \n",
       "21   0.007137     2.379686  0.105878  8.049028e+06   80  \n",
       "22   0.016153     2.379686  0.105878  8.121081e+06   80  \n",
       "23   0.020777     2.379686  0.105878  8.158037e+06   80  \n",
       "24   0.026391     2.379686  0.105878  8.202903e+06   80  \n",
       "25   0.026935     2.379686  0.105878  8.207254e+06   80  \n",
       "26   0.013433     2.379686  0.105878  8.099343e+06   80  \n",
       "27   0.021467     2.379686  0.105878  8.163553e+06   80  \n",
       "28   0.015034     2.379686  0.105878  8.112135e+06   80  \n",
       "29   0.026944     2.379686  0.105878  8.207320e+06   80  \n",
       "..        ...          ...       ...           ...  ...  \n",
       "194  0.274545     2.379686  0.105878  1.018615e+07   80  \n",
       "195  0.276543     2.379686  0.105878  1.020212e+07   80  \n",
       "196  0.280406     2.379686  0.105878  1.023299e+07   80  \n",
       "197  0.277810     2.379686  0.105878  1.021224e+07   80  \n",
       "198  0.277159     2.379686  0.105878  1.020704e+07   80  \n",
       "199  0.277353     2.379686  0.105878  1.020859e+07   80  \n",
       "200  0.277786     2.379686  0.105878  1.021205e+07   80  \n",
       "201  0.279799     2.379686  0.105878  1.022814e+07   80  \n",
       "202  0.264434     2.379686  0.105878  1.010534e+07   80  \n",
       "203  0.254242     2.379686  0.105878  1.002389e+07   80  \n",
       "204  0.254261     2.379686  0.105878  1.002404e+07   80  \n",
       "205  0.262294     2.379686  0.105878  1.008823e+07   80  \n",
       "206  0.265488     2.379686  0.105878  1.011376e+07   80  \n",
       "207  0.267762     2.379686  0.105878  1.013194e+07   80  \n",
       "208  0.271289     2.379686  0.105878  1.016012e+07   80  \n",
       "209  0.274778     2.379686  0.105878  1.018801e+07   80  \n",
       "210  0.273759     2.379686  0.105878  1.017986e+07   80  \n",
       "211  0.264895     2.379686  0.105878  1.010903e+07   80  \n",
       "212  0.268600     2.379686  0.105878  1.013863e+07   80  \n",
       "213  0.252605     2.379686  0.105878  1.001080e+07   80  \n",
       "214  0.271077     2.379686  0.105878  1.015843e+07   80  \n",
       "215  0.280589     2.379686  0.105878  1.023445e+07   80  \n",
       "216  0.281150     2.379686  0.105878  1.023893e+07   80  \n",
       "217  0.270672     2.379686  0.105878  1.015519e+07   80  \n",
       "218  0.277313     2.379686  0.105878  1.020827e+07   80  \n",
       "219  0.270920     2.379686  0.105878  1.015718e+07   80  \n",
       "220  0.270896     2.379686  0.105878  1.015698e+07   80  \n",
       "221  0.288153     2.379686  0.105878  1.029490e+07   80  \n",
       "222  0.278044     2.379686  0.105878  1.021411e+07   80  \n",
       "223  0.285961     2.379686  0.105878  1.027738e+07   80  \n",
       "\n",
       "[224 rows x 11 columns]"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_return"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "模型回测显示，PA80 2017年年化收益率28.59%。(PA80 九年平均年化收益率30.8%)。  \n",
    "沪深300 2017年年化收益率19.62%（九年平均年化收益率9.8%）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nMkTKlhW57z5f2u7dInXrirRrp++3bxeZP19k6VKR9etF0tNFmjUTufLKvL//r79EbrlFZObMo9/9\n9JO26dprfe0DkTFjRDZv1vu33y5I7xUgXoIca20FYBhGsWbRIrjgAp1NT5igK4GePbPmiYmBU0/V\nvF4efhj++gsmT9b3J5ygH39q19Y8x2LJEujbF5KSYNQoVfF07ux771X/XHABfPKJ3p9+uu4LjB+v\nz+Ey8LM9AMMwii2//gpnnw1lyuj95ZfrJmtMzNF5O3SAhASdf8+fD2+/rXljY3Ovv04d2Lo19/fT\npulGcXq63otoO/xZswbKlYOzztLn5s3hs89ULXTFFZoWrhhYJgAMwyiWTJ2quvTatdXyp0WLY+fv\n0EE3ddes0YNh9evDU08du8yxVgAHDsA110CzZhAXB717Q61asGJF1nwrVuigX78+HHccdOyobX38\ncd9mcL16gfU51JgKyDCMYsfnn8P116vZ5vTpgc2gvTP9QYNUbTNpElSqdOwytWvDrl16rqBs2azv\nvvpK302YoIM76MA+e7YO7o89BqVKqUro0kv1/ssvdUMa1Py0bVu9b9488L6HEhMAhmEUK958E26/\nXVU/33wDlSsHVq5NG6hbV1cLl16qZp55Ubu2XrdtA7+D+2RmwquvQtOmcM45vvQWLfTQ14gRcPHF\n2radO1VNBHDRRb68pUrBhRcG1vbCwgSAYRjFAhF48kmdXffrpy6U/d0o5EW5cuoaYvJkuOyywMp4\nBcBff2UVAKNHQ3w8jBmjA7mXZs189zt3wtKlet+1K7B3rzaiXLnAG13I2B5AEMTExNCuXTtat27N\nFVdcwT/e44XApEmTcM6xcuXKLGXuv/9+Tj31VFq2bJnF5fP69evp3LkzzZo148orr+TQoUNF2hfD\nKEoyM9VSxuPvMAtJSUdvnOZU/s47dfC/4QZVuwQz+HupXRtuvjlwe/s6dfTqvxGckaF7B926wb//\nnTX/ySf77rdtU/VPtWpwSpN09fo2cGDwjS5ETAAEgdcX0NKlSylbtizvvHMkKiZjx46le/fujB07\n9kjavHnzmDt3LosXL2bp0qUsWLCA2R6nIw888AB33303iYmJVKtWjdGjRxd5fwyjqNi6FaZMUdXL\nvn2atnKl6sEbNdLDUbmRkaH6/tdf1wNeo0dD6SLSXXh8MpKU5EubNAk2boT//Odoz52XXAI//qj3\n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\nowAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x9e029b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y1=data_return.loc[:,'index_return']\n",
    "y2=data_return.loc[:,'return']\n",
    "x=pd.to_datetime(data1['date'])\n",
    "#plt.plot(x,y)\n",
    "#y = np.linspace(0,1,224)\n",
    "plt.xlabel('time')\n",
    "plot1=plt.plot(x,y1,'r-',label = 'HS300')\n",
    "plot2=plt.plot(x,y2,'b-',label = 'PA80')\n",
    "plt.legend(loc='best')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "每日持仓情况："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     方大集团\n",
       "1     华联控股\n",
       "2     西藏珠峰\n",
       "3     深振业A\n",
       "4     联美控股\n",
       "5     天茂集团\n",
       "6     龙蟒佰利\n",
       "7     申通快递\n",
       "8      新和成\n",
       "9     世荣兆业\n",
       "10    韵达股份\n",
       "11    金安国纪\n",
       "12    神雾节能\n",
       "13    经纬纺机\n",
       "14     金融街\n",
       "15    佛山照明\n",
       "16    三钢闽光\n",
       "17    中泰化学\n",
       "18     红太阳\n",
       "19    粤高速A\n",
       "20    浙江龙盛\n",
       "21     奥瑞德\n",
       "22    雏鹰农牧\n",
       "23    亿帆医药\n",
       "24    万业企业\n",
       "25    赣锋锂业\n",
       "26    宁波华翔\n",
       "27    天齐锂业\n",
       "28    坚瑞沃能\n",
       "29    东风股份\n",
       "      ... \n",
       "50     阳光城\n",
       "51    大族激光\n",
       "52    青岛金王\n",
       "53     碧水源\n",
       "54    荣盛发展\n",
       "55    威孚高科\n",
       "56    潞安环能\n",
       "57    北京文化\n",
       "58    阳光电源\n",
       "59    宁沪高速\n",
       "60    海德股份\n",
       "61    华光股份\n",
       "62    华侨城A\n",
       "63    金禾实业\n",
       "64     新华联\n",
       "65    北方国际\n",
       "66    杭萧钢构\n",
       "67    东阿阿胶\n",
       "68    华锦股份\n",
       "69    京威股份\n",
       "70    迪马股份\n",
       "71    永太科技\n",
       "72    中国神华\n",
       "73     金达威\n",
       "74    富奥股份\n",
       "75    牧原股份\n",
       "76    台海核电\n",
       "77     万科A\n",
       "78     五粮液\n",
       "79    华夏幸福\n",
       "Name: 2017-01-03, dtype: object"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_stock.ix['2017-01-03']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 章节II. 模型改进"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 权重的变更"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " 原有策略： $$0.3EPSGrw+0.25ForwardEP+0.2ROE+0.15NeOprMarGr+0.1DY24$$ \n",
    " 权重变更后策略： $$0.1EPSGrw+0.20ForwardEP+0.4ROE+0.15NeOprMarGr+0.15DY24$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "selecting  2017-01-03\n",
      "selecting  2017-02-07\n",
      "selecting  2017-03-07\n",
      "selecting  2017-04-06\n",
      "selecting  2017-05-05\n",
      "selecting  2017-06-06\n",
      "selecting  2017-07-04\n",
      "selecting  2017-08-01\n",
      "selecting  2017-08-29\n",
      "selecting  2017-09-26\n",
      "selecting  2017-10-31\n",
      "selecting  2017-11-28\n"
     ]
    }
   ],
   "source": [
    "r = [0.1,0.2,0.4,0.15,0.15]\n",
    "select1,code_list_set1,trade1,change1 = f_1(start,stop,r)\n",
    "value_close1,stock_close1,delete_all1,add_all1 = f_2(select1,code_list_set1,trade1,change1,80,start,stop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "index = '000300.SH'\n",
    "top=80\n",
    "index_value=w.wsd(index,'close',start,stop).Data[0]\n",
    "datelist = [dt.strftime('%Y-%m-%d') for dt in trade1]\n",
    "changelist = [dt.strftime('%Y-%m-%d') for dt in change1]\n",
    "index_downlist,index_chglist=chg_drawdown(index_value)    \n",
    "data_return_cf = generate_df(value_close1,index_value,datelist,index,top)  #top80 结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***权重变更后，PA80策略的平均年化收益率从29.5%上升到了30.8%。***"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2016年各指标表现如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5QAAAI/CAMAAAFIQ1Z1AAAAAXNSR0IArs4c6QAAAARnQU1BAACx\njwv8YQUAAAEmUExURQAAAP+0gv/R0f/a2v/j4//s7P/19QAAAAAAAO/v7/89Pf/AAP/z4//oo/7e\nsgAAAPLy8v7BcMzMzP9mAP2sP6ampv7Kg//xx/X19f/67P/bbv/dx/j4+P7RlP/kk//v2v/449PT\n0/2fIv+Tk/+aV/z8/P/22gAAAAAAAP7YpLGxsf++k//////QsdnZ2QAAAP+jo//ggv/00f2SA//r\n0v/Hx//VV//07P/99QAAAP/XvP+obgAAAP+8vP95H9/f3/9XV//p2gAAAP63Wf+LPf/79f/IH/8f\nH7u7u//nyP+xsQAAAOTk5P/59f+Cgv/uvAAAAP/PPQAAAOjo6AAAAP/u4/9ubv/37P8AAP/ssf/I\no/7ivcTExOvr6wAAAAAAAAAAAP/j0eyMCGAAAABhdFJOUwD////////LuP///////+7/////////\n/////////////////////3Yi////////WP///////////5b//y///////0r//////////9z/////\nPP///4X///////////9nqBOZsIQgAAAACXBIWXMAABcRAAAXEQHKJvM/AABjjUlEQVR4Xu2dCWPT\nxhaFXbYYApgCadj34DQM5EEKxGBSSCEsgWLUAKGFxPz/P/HOuXe02fISy4mFuB9YGo2kWe42I1mR\nK0ZPtvw6ouXXe0CrgdrbzUqwul7ZkJzVSlXW46dRra5yXQ8qqGMRCckmQbWOXqPi0bu+hVLnsQ7Q\njSYzsO0Jgkp9HptNlB4Ju1qrVdGCKVQZHqkCqATbNU0MBOWt8uyAzUal1am40n6gQZ4pfKoVnIas\nYGMxCILhpL/aYJ1BMF9ZH67KNAHFj9NRKZaxHgbgBcTzCc9j72WDJJoiSfZuvATbKBNlN6V8LraZ\nCFlHXizcMUEhaV2gmS5+K5jfrtSCGiouGJt7jtW5e0y6TrePC02ncZvukE/GfNo84lNdHPDrCLf5\n8pPb7zeSdR76tPk0u07SteOTX3ezf7OzhWg08BtmQ7vHz1PnqT3H6tw9ClKnc/g88xvE8d87vxGB\no3rw6NRHn4pgkVGZvs7bqIj/dWdHgbqRygIP8XGPO3MJCuhsIQ9juYLZ0O7x89S5tOdYnbvHpOt8\n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\nLA2mytJgqiwNpsrSYKosDabK0mCqLA2mytJgqiwNpsrSYKosDabK0lBZMkqCqbI0mCpLg6myNJgq\nS4OpsjSYKkuDqbI0mCpLg6myNJgqS4OpsjSYKkuDqbI0mCpLg6myNJgqS4OpsjSYKktDcVT51wsn\n69fOuf+wfvHX0YuScVmWuTj66+kXPrm0xHdu+JUk8nDx9VJUxEUU95cmr+Uo9/Xv8dnXjrrjkjiN\nsv+QVG8K5JXag9Ofr6Hdp5d+cz4jh1RC/juqH+H0b7oWyeQs/DTODwV/DWr8w6e9VY4C+r30W8Lu\nVJXDlDeUKn+H9f7qWP6vzomTuF+X/oKhvGZatsaBtFckjg5cxhYzBtniMEj7Qmm4y6e5Eo+/+DuX\noyPC8K54jQut5PJQos9GdBefrqo87YZo6HBe6SMSFgh/zEDJR5eO+/jkxqlKAdI5ji38/0uDbC7o\nOyhMGwljFKMU4hpHQ+UejwB/iD7/+i2PKsXs1BeBptDmMHb3ZgeqfOHoMeKWXhaqyqO7oEr5MNaE\nYTEPF6XgWDzH3WefimscDZV7WMrpz9paLEcu2JtdZB1Rq6NaerIDVaoTYnBf+kuMz2f/hqFtzKq8\nTAv8i5YDm4mmPyNDB08IhZ6p69/zunxalV5CtJMoa6do0zJUmXT+bHasSqQ/h4VidrJ07T/kjFeV\npzmBFY5fi6c/o+PFkxhufIE5y0UBosp4knINGb9xKB69ZG1rNEOIVckY1ZedqxJOyBX4g0aNfoxb\nlVE/rqEf4fQnD3J+shCfzluuCjrh7tTtZQ5swOfsFLWOSKCJwsfolUdlrPQbgDMSzNXytDuNL4W1\naASnufvpTy7okCmjVj867i9LRuc1C0oWHKZHb/FnGHIiDMWqfO1HtZ7sQJWhwuK1XssjMU6vFNOQ\npLccP23JAUXzAuPvX1j/95+fWoT15YIF8orMXVt6DVlE8+0cReNUTg68OlWVL64tHU/4fjZDqRLX\nlddOv/BDAmbzojmRuMyQx6NKBibEEClWxrXfdPp9+oWqNA/XXnymTVOVuBwOB03foVwc9cK4xoL1\nWoTkUOXS5xccbUWVvHLi+g93eZBPDuuVxg+AqbI0mCpLg6myNJgqS4OpsjSYKkuDqbI0mCpLg6my\nNJgqS4OpsjSYKkuDqbI0mCpLg6myNJgqS4OpsjSYKktDZdooCabK0mCqLA2mytJgqiwNpsrSYKos\nDabK0mCqLA2mytJgqiwNpsrSYKosDabK0mCqLA2mytJgqiwNpsrSUCRVvv+i63uyvORmZT19Vld5\nWDu7/MEnyZebWJyVV5E80JyRuecu+dT09E1t8SUpWDsxGslCp4+xsYCFaqoHVOVdHLSG9bFUx86i\nvC+hODtYdk4rgDyuSKKDc275ARqx5pUzDF/eOzn67BVp8V03fUUqX+YiH2soEe0JWZPGUzQDhDMY\nnP8lFFFYnqxFoCOSLPTcFy/pWZR5V1K9EK+8icNkzYXHOdrxF5cpyS/QpSTOOXdOEmlm/WmqnGEJ\nj5ai0YMvTBxLutOIuGNsqd/AJqUjYlnL6fGz7KYv+D2U94A1ic3Ete2YZKHAqzKpm2xUlV+cyD5x\nuFcu1ll++eWDY6Onj2F/hiqhYE18yK3KtfeSlQ9xkchP7oXSQTKnnTi2ThZ+WBCpgAfZ0WwokoUC\nbey9bEUkUVVOXxFLlZNm5ZwwglKl+Jy7ohVgi0bzRVIiFVHl2k13FpKCd39ZW77kdxIoJzxnMClV\nXrk5/R6JoU4cgDpkWPqHu7Eqw2aOioxpUWdBmMzj7R2F+sbeXc4OkDFelRT4JVElFLnsOHRrz0Ur\nWKzd46AId5udhfK+YFxFAIb2RJWUldTt3Hv4q54UEp4zmJQqsYQfoc5LYfbISKCOSoeUQ1V+CFU6\nKtKtRGfPhQUm+r9jOgqN7O5BcjKUQahKin8N63uQ302H3qdViZGFCYmc+I99DMmUCiu+h/ma1M3M\nL0mvBOE5g0mrkpx7AE1OX4mCzWgckwJ96ZylhdK5EsbcUelUZZi6m6fFvVSJeOkT2USqXIP8scYS\nnHuQDLBYoHRO3MNBEFJBMOXUQQPs9AdEaKy8AchJNAcmwnMG061KNshPf3LwQc7XhrJt0ixJyzIH\nMjTGso4m87mGhY5C49SA9kaqpMgpubjHfo1mZalS9+guhmTZ41UZzm8Rb71XDkWXKqXI/Kqc5kUW\nL0hCvHQ+5JibKHL1GF3CzUZOnqvB6UITqnzg51Q9iFUJ/8X6rB9cca3JFXwVS6/KWC2qSqmSu85C\nCf5A1YY3CNkcXZUiaT/9ycUs3GU2kggq0HT+ew/0d/V5IJoUx7zUX+YDSBUaNRYMEIOo0h9zFidB\nd7Myr/4i1/56dcm8NT/t4YEi5AdMYpIjWj6LPTgyVCVKYb92psoP/m7DMT+j/6CjvEx/crJ87hwt\nNHRvL50h29WP2Vn1dnSU1/D+hknOgn2h58Qf1tS33MAJrKgSLdC+cbl2JbyA+bLsrnhpunP3REls\nrK5wKFLcRs4DnPIeUyPeavCedQ7pm19Un0O7pZEH8cpB+HhpFBpTZWkYRpUY+eSulFFohvJK40fA\nVFkaTJWlwVRZGkyVpcFUWRpMlaXBVFkaTJWlwVRZGkyVpcFUWRpMlaXBVFkaTJWloTJjlARTZWkw\nVZYGU2VpMFWWBlNlaTBVlgZTZWkwVZYGU2VpMFWWBlNlaTBVlgZTZWkwVZYGU2VpMFWWBlNlaTBV\nloYequRrPYQweeIrs++4uZMzh+WIqyecezszc1I2xglrm5lZcDNYgrcLssqNW/jzm0/OXGUNQHqm\nydE5c/LVnE/OzKE4Cuor1nc0a0S+npmZi3r+bahG9vJKKIorLqQg586gpdSiO4HFgu4+48auyjuv\nZAUzOYMaZxZgLuNg7irKxEe5Kq3/k9L+qpY5Mv+glfyQb9+8laDgP6WKkeHZcQnjUOU/+Lxl8g4W\nr1QWVKVzKnE46Zhxh8UYocoTbEFk8PmAk7MjuoFYIinxmwtc5ECM2RdMq5CaSFTZKJzh2e5P3UBq\nmML6qpJK86o8iQU+bDcaHIelcasSldH/Q1V6c8/NN7ZXFUjiVD6Jz8C8uUwGJ1/gnzIijYqEvliB\ncaoP/VS5kFClj7KqzIQqwWGMC9hmHpS9MPNnzph42GFQ+3aG2ryaSx4JLrC9War8Gg2go3FHSuKs\nwXNV3HzhRD5vlwJjISfF3ZM+qsRcR5JUJXSFuMfRXErVpQf7F9CjV8xzUENO4bBALL6xN4fj6U8+\npL1ZqswbwDVoJ1TpS6Zx52DMqkx5pUc0zKITZYf7MaP9ylF/RFWyZC+RsHDW5Kc/oyMtlnE3S5VR\nYudIwVpSPKr9o3MIkFDvzhm3KpNjpSS4kB3sBEBohZjD/f84N4c9UV92CCWTVqXMl/30Z3RE4hIH\nO6c94CrndSMiBWtbo4K/xiNCPlXKWKnyB17C/emrSq6TqpS5JSUb7pWhM9rvMMO9MFStA9AufOV8\nOb8qFZZxJhJNpMr8E2Q6pF7bgK+cFHsP5Yg0MmJ6cQlDCXWAKq/CtGJVyvofLufU5jpVyRldFGtG\n4sSfM1+9fCWu4pItl3mHvIUa2Uy9BIxUGa5Hhxcfc/DFr1jrXOKfmTuobCHflAFqvMqmsmiV7EB6\nqRJNejXz6gRVNUdvI29fnbg6c0cF/dadwFzVzSGcIsyq+cjkLadwrro5f5vEK/TtWDTJguVegKiS\nApdS7+SzO2Fh7gK7T1WyXEp9Yc6dGHWcCTmst4tElVrqIHqp0vjhMFWWBlNlaTBVlgZTZWkwVZYG\nU2VpMFWWBlNlaTBVlgZTZWkwVZYGU2VpMFWWBlNlaTBVlgZTZWkwVZaGimEYhmEYhmEYhmEYhmEY\nhmEYhmEYhmEYZaIVBOstn54kq2jHqk8bxk/NVBDUuZ5fbGwsSk6SahBMtSvtmqyy2QqChuxrB0Gw\nIVk9qQdBrenTXdSDKTQmqPlNw/g5aa/DpfAJgurGYoa7wBu3sILjVTWjGwy1gThlIwi2JacT7Ag4\nCLbhcyyti9Xtqe31oKZu36ovpv2/kX1SNs31YBv9WK1uz7ekyfPoQhDIPsP4AVhUX6NfzUtGB9tB\nIFNbHIDhNHsoxD4ppAn3lowM5hvwq+1aPWO0bbWk5jqGUIyj622Myuspr2wFUz41BBjZw7m47xuz\nzCmNH4VmbcNbP8y2Wd+uNjrGSgxxauJwvC0c3uF28y0e751ynn7bXhQXqGY4X6W5ihq4t2M45fx5\ntRZM1XUc7bq+XQ96Tni7YHSJ5tlNc0rjx4PzySqMdgrutigelgJ7/BUgjL0FD1Urj8G8t8V9GEXh\nkzJP3Ooacbe2q2C7Xl9t9bih1Npo1+c5Qq7O63w6WcbGoOvUJGgFSRWgTtncht9H9c9vMHfKX0PL\nEQwpjVptkQGKW032Po5S7S3IKjzBMHYRWF5ilQJeskVnZBrr9YxbPZhvyj44ZZUXjUh2+q2wpTdW\ncTjsPO21q7B1DJ0ID7V2Cw65XWmHc2ahGaz71FDoFSSphvWIy603GYD8RBjtoKPzUlrucbHdyGrM\n8+K3JbN0HDqv7ZViWCwSuLTOvmo2jPEBM+NgAMPd2qjKDR8asO6B4cJameY8Nuvuq+xWp1yk+S6G\nVp4CdURXkxxv04c0t+Gv8MPqVFBtzdc7vxWZkltEO6BNz1J0iBWnxJoupjNhOi4mytyhMUScknd9\n6wHHQm7JuXIK1rhclgwel9FBwxgLzdZiXb1wfbvO4crnh6yKF6lTwquSg1cMXZpTX9lXhV933S9q\nb1Tr4ZntFq4qa1NbGd5N4AF6xdpsbdWrVT1sq/fNoz60xBH9sJZyyqgXrWqjwyljb4u2JN+7b0jm\nVMAw8tOq1yNnAXAsn0qDoW9+CjNOGHR8dFuGE0BnbdBydR9NWAenJHDUWr3B2SASbRp8PANsb6EZ\n9Q1e1grruPjcYMsEHDC/w28t67ELy4DJRIZTouGYFO/MKc0Zf1yg+uhqZpLs7AEZGJ1PpUFvZA3r\nTJq7WCzndJzThk7Jy0J0vmscxNRUj6Fh43qt11UZ6or9wrMd+v+Q1BNRAeVlj5RyNwiJIZ0Sa8Sm\njMYZPwi8SSAm2tzaTg5FHtgB7LjvAzLbGFgkAbcadD0FOxvPAzK9BoJaeDoarg/jtbfQeM1c1Ad5\n0IhWhV+FIBjJ3ZRqut9w3iYqoFOu0rx7dVzKSbO40/sqdDyMbGS+5t2oyyklsa2Tcr2LlOGUoh+c\nqjd65NjaKr/y6dV8o6jAAGsNWG1Qq9ZXMwZM7KLNQMc9Z0MwGb1HiAs+b18dcGJGb6UHZB7R/wGZ\nLHqMXxhTwvwmBryQ7VTPYLkJZ5IvG6rVRmKEmwq26utBA631d5JId1AKR9wYRLgdukCd1ba2OWLX\ntZHib0A8EVDuq+vB+gYiCLrEp3/UbUHolpJuNyDC+FaxFpqtkCHgVW6tjsqa9anF9tZwc+EmYmKb\n03+Ndi2GaenHzqYPCRqdYe8nwE/sILjs+/jhzX5YCg7MfkAGJ0shcNyess/zgEwmvepqp/0vEwxJ\nPtUJ7CmYwkVir+8n00AoPjVpaPfxuJkfmT/EUai93jskJ6H4qjKuL9Id5SIgYFEjO+VU11yk9CzW\nfCCF8Kqr9Wo1fF4mBEOcCgUHZDwg0xR/8k6JeV6rMr8lY0u354JRH5DJpLqjLwN3h/mdzlV3DUp1\njE4pc9+UG1aHckpq1x9Iz8wdsnhl/NM5pUw3qvAFSHN9VUesJJzB6BUgnDLjARnegBD5Q3IQIGfB\nGYNczgdkjIGIB6yPTWjik+mvitpe84ucEye/I1rEXGpdJ0ByFomn1zAMXfuIMb8BY1uPnjpq4cLJ\nT7g5pgJMulG+3pjQZoChAkKZ8F3O6vkQD8hUeZo4ZVOudfyg2UWOB2SMPUc8IeuZevgaZ0q8itH5\nKHSHRBPGIaaROVKKu4lV0IjkaL17gMkuS4OXi5OKI9daMnPWaZCU8TNawrbemIQS6o0qhzqg9+uG\neUCmHjkljoAao+luCoS80R+QMfYa8aKMIC3PFYl66T+88OGoye3w8P5OycmorGtyeQOVy10xnoSV\nOiXWsSv+fE7Zam1tqBdONeoQXKcShnpAZhuXojUUwjQG1uZU1/2ivA/IGHsPte09KknsI95/JCMk\nzO/tlDS2OB6r63tYqjllZbFe3wqn9jKlyIiMANGtzwMyDHaLlJ1uUojdA12uB2SMCcAhLeOGaewj\nSaeUXZ7+Tsl1bGWSnVSxOWUHkFC2U0IussYBXQ/IcPxkZngM7xpl3XiF6/L8kR6QGUB7daO60eMG\nR3srhz636zpTmI9CQzMOYUkQcqrZe35gxGFSd3oWKQYOdSIO+g9UJQ8aJe2mv1PyC5OEhnmb3n8z\nLZhTdgDBZftDvwdk2nU9B7uQCxlvtOVbk86bpzkekOmBKB+TbtZDxWV/Q85xfFSV8pk/TYRf0cGk\nsqNJNZDH5Ivy7ch4wHVfIgzXa9F9HebRGSWD92wg/XZlVQNT6FcgdqjIKTWPTxlt8a4Fb7OLrTS3\npbBup5Qzt9qNn/Q2A7qfadhDPSCDDJ8ircZUUMMkNOEOIz8g0xMUVWd5tSZOSobbJNBu9vAfM99a\n9N+dhjHHA3PzUardwvXt9jwkEU8VPFvVqfhrosUx3KLCNTlggfxmoMfXvZ55Xy8P3JXvbOe3tmUw\nq/KxnhD9SiSenMzzdUlT+vU2Wyy01MFIPcpVN5OnjMKJcZvfTPsvSMQBgbgkkN61N2rBevZo8RMA\nkaRHt5BhHpBZ7Wn7nLDsygMy8Blf5FTmvXsB5WUplM/xSqsWE1/MSsxPxiVW0N7mxa6GFwQVyQ9Z\nbYkhVhFccMw2K5O/ms6HmKZKU5rZO0pFQt81pzQmTfcwsPfs5AEZzILXqxtbrdZ61/2IiB5OKZbv\nk2BexwHkpQ72/rCB6RaDdVVGrXn1RMK/7G8hrG9vYKhoVtrjua5MOKVO43qEO36Z1ysSGsYEaa76\nv3rGHChjCgur3triJJckZ4LIalYa1QafgZdvheB/WEZFNOlofNyhHtQaU1OLW+u1YBsj0nr66mZx\nq7nV5ggJV8VIm/lg7w5JOqVMYMPBO/WKnnnfJw0LRLJ5rYa0XqEZxl7R2sI1oEzsYLyr2ZM7ucuH\n3TDdbPuEJePMmlo/7BizWPqW7AvBIRgM/eSdf8qhJ4XgGpkO00QhbT57vSXXg37n6CScku4W/pUb\n0gwqDBU6nMeHRfdHZL7L/qI5vf86zjB2BRjdPIcmTnZX+fRkj1sBMNfssQumj1MW+VzfFs6nvcPs\n03NnsexFXFPy5SG8bYxR0+8SVvmH4diF8xvzreS9kDyIU3oS1bEJCAH0P3VF7u9wSrkqlhwmzCuN\nPYVmuM6n9Zr1RT6R0OMeFay00WOo1AGnUYuHPpSZcO0m/9ga2y0Mlby/29oO5qs9rnhxplbSatU3\nqjnnjuFIKVPXtGelXtHDvR1OGa5TOw1jb8CotljfotdsBA2YceaXOZzsreNQfVK6g6lOo41ev4AL\nNk4S+Z0qnLKunonNbXhp5MLzfAyp3uD8WJiqVqvI2JLHkHKNUaFTykscEl/CoLfr6nfmlEYRgVNi\nCa9pNXkd1eP7APgWRlAMqBn3lRv8JpW2Kw5FL+wqRpxyO1ivrYtTwmsz3VucIXGtmZPIKf1X6/oV\nrDw5g0r6OmV6+jq+JhnGEMAp5bt1eFuTT8PrW1/T8JE/mdXyWcDtTnear6U9Fa7bMQeGd8ApZUGn\nbAQN1Jr1dzJ0Cp8aA/LUqQ8PqBCgAZpKvaKHnrjelt8DCp1SvqTh5Bll2I0eYw+RoYR3/TF0NRry\ncAg9qpZ+ABYuGXmqPPjX+WqsTlZp+zFyTp2VNeWveOVkyVzvfDeDH7fHgXqhwm16maY7X9EDOWDq\nzGR4jo6u8pWI/XmNMSF0KFMW5RpPnyCH81S3028/gEkL/gHOoZC/Dq2s8ntJuL5k9UD+pNQwDH4b\nmX3Tda9Z7HWjyTAMwzAMY+/ZNAyjSJhTGkbBMKc0jIJhTmkYBcOc0jAKhjmlYRQMc0rDKBjmlIZR\nMMwpDaNgmFMaRsEwpzSMgmFOaRgFw5zSMAqGOaVhFAxzSsMoGOaUhlEwzCkNo2CYUxpGwTCnNIyC\nMS6ndEkO7b9/3ed7nj7ZL3v2P3nqczY1I8kbv2fSPN13yLl9yR4c8S28r1v3D7kDf0tSeXnofz41\nYT7dP/TJJ5O8fHPQHbp/xG95jvxv/6GJi/zTPucOdNhKhBiN788n6uTAm5e6NQH6tvTlobCdPYS9\nM8Y4Uh6k2Urb0EZ4ZtSu69g8pM748gD2RF0Tvwzt4n5BnPITGyXs9zmRTx6QrQPuyebm385F/Xtz\naHK2kmDfE9hNbBwRkDkjyMtDXgfkE8JKvDUprqtE3/hgl+J/iIuRWP92+2T91E1I1P1aKm0N5Z4l\n7B0zRqcUF9O2qWGr/J4yeVCSJHFU2ik3nxTCKf8OwwdijFoCfDJp6W+0+ZHPvjwIHy0I8cgSg4ii\n4ziU4sPh9TC+TJb77pAm9ifsQ7nvGPlCYEKRxUzESPq0FBzYF8k9Q9gjsDtOqbNZScMAwqQgPuob\nHDnly2hQmjjeEdGm0Cm1xQfD+apXALJk83o8I5g8WU6J4OJHF8xSJIWjRjeY8QHL8I6HaUcqsHGm\nlZJqOO+CTiYh7d4tBU8h8kju3cIehd1xSo7nPqYx5e1XSWTIGTjs5cHiOGUEYp03gJef/ict1akL\n9IJOwjxk80DmfGZSRMYRg26EwR17qRO/mjhoh48NnFhpSqBPprvBaQuulu9PKJj0bCl4wjlHKPdu\nYY/ELjjlU15DhtfE7EXi6gzIYdoHTZLiOSWuCtKRDjMqFfhTXC/g0oEd/NtxrnsEu/Z1OsNECI0j\nAWbboXDVTjh1OXD95ebfB92hydi4B+3wje0wdYjT7ft78+X/DrmD4ZWZ3Iy4P/LYk4+eLYWVyGw1\nlHuXsEdj7E7JoIawFooPIwrodso4iaYXcKQ8cqhrCMT1QoeY98v89iBnNH8nbmxNjtA4EmDSkrYT\nXRKY0CTH+Xg87DB1bPkdaKvGjZcHDrzk9CvP7ZPR6dnS697OQ7l3CXs0dmGkhK5B+CUBw16nyENj\nkDPY9AJdUyr3D2QE5TdpMfNiAnTe+JkkoXEkQCjxNyn8Xigk7AaMzacmARrijQSmnhQewrrvBS7n\nZcd+PfIpGjyJMNKrpWrpEZ+6hT0au3FNeQSyi+/vSXboov5y03dMdsWGfqQAZi1czw7I+0KBC/t8\nB7300RPdniRZlgCL8veT9c4VDD007Mx7iXsGLNjfVXsSNlGBiYTzam0rjF83Off2qb2kZ0tDIrl3\nCns0dudGD78wi+xD7r+G9y45/keGk3bKv9MD0cSIXPLpvmRYxgzKp8jTQ2GP0jd+JkuWU8JQtOH3\nfSxEg7XtRyY85YatS0OwTrcapq8TFf/1IOKIl/an1JC6Z/RsqSeWe6ewR2JsTilTfoyPatBQPDd8\nS3kn5ND1l5sveQsofthBzzjI7SPX6aCZHd5jtFEemgYzDmBGFX+VDZ4kpre88XPk4IRuDKb4RPGG\nDePcSlNo4KfNTwfj4R+W83TzyL7JN/k+mvvySRTO0GKNyy8P0Ew+HYiavE8eoXq6b2K3ptIt5dCS\nNNZEMOwS9giMcaQ0DGMcmFMaRsEwpzSMgmFOaRgFw5zSMAqGOaVhFAxzSsMoGOaUhlEwzCkNo2CY\nUxpGwTCnNIyCYU5pGAXDnNIwCoY5pWEUDHNKwygY5pSGUTDMKQ2jYJhTGkbBqFROGYZRJMwpDaNg\nmFMaRsEwpzSMgmFOaRgFw5zSMAqGOaVhFAxzSsMoGOaUhlEwzCkNo2CYUxpGwTCnNIyCYU5pGAXD\nnNIwCoY5pWEUDHNKwygY5pSGUTDMKQ2jYJhTGkbBMKfM5NZ351PCc6ec163z79zHXySprLz716cm\nysrth+7d+ed+K+K8bzxJtvOZu+1Tk+Pxd+c+3vIbnay8c499Ege+w5G3V/zm3tOrpb88cxB61M6e\nWtgJvZ3yMaTg3DMmV36BYiW1u9xmjWIpK2pJ0tfHt9ESST3XXJWQe5f0i3Hy8PZHqSUi9MmPsvXR\nPYIunIvkfvvd5GwlZuWjo0BW3r27oRmeW77xRDsg3MDmpJ3yljbotg92HfyLFnpj/8V9l/UNNyFR\n92qpWKzgZdlLCzuiz0gpFUau+O8eOOXjRO+YjALl4zAluUyIn7zLFY/64WtRnkftIBALNyPRrDyE\nj04eCESHQQgxGdBXPkZm/DGOI6cePXw0cac8795p4pl7qIkkH79jDFLBI4B4DUxodO/V0kdeuIxw\nIv1eWtgZwzkll3tgeplO+ZwZt71SJFdS0NguWlVYC6HEnXsYjsveVMIjbu1eZNgRD53z3odhPnM4\n+Tc2k5WHt6neyTolhnBvU5h2dFrXDQg5ckoIW6W8kpif7CE9W6rjN0C+OONgLQzDUE55Ox4lH59H\nvQ8fqWjEiWicv3x0z1bETbgZJcSHRPMr/z7DHPShvybQA25jkvrunRrKL5yx/5LplOeTpiO5kkIz\n8gSjAYS1CCuP/5UW69QF8kezYB6y+TFz5rX3QHRhDEdbs7ztuZ8Cgl9o4hN3SrTT649611TII84W\ncYB3yhVo+91jDFi7pvC+9GupclulP1gLQzHYKVduPYwmsciSShEG1BhRNRr8LyeTOEYchX7HbJn9\nP5KGoa0UMq8ItST2zT06L9eIkDtrwhScou90yl8epvomuUzwolJm77uDryUJ2qoCv4HrBVw6UE2/\nsNlyqfvdm8+kgAhDJfUwh4fR5dgz8c6JOyVk7IXWaer+xhk6EkkVAofNjTz25KN3Sz2PvfAHa2Eo\nBjvl81vvwproCVITd4lmxSkhwecPZXbNe0Ow3OcPmcABv2hw5nlISYGSIU7Jafpt2jav6KUGyfZd\nYdI9XkHlyb5JLnj37PzueSRAFT4Vg8jTIWa17od642ey01jIsL85PApD2A0MOWTiThnevusy9Vs+\nfCSccuXjxxWaSZ7bJ6PTs6WeX8KBdKAWhmOo6estrSn2GdnFdopTMkeRy6/zpx7ekMStUw/j0Pb8\n/MdHzJSNpPepp/VwSiR6TF93l8xabqfFzMseAFlwHatjIiBi+HsRSVuOuRHeNxQZx6R6tLdgfqE3\nRdimhPDEuGLUzOTIG/COSVwu9GqpshJfwgzSwpAMf6Mn6TO9nFIGPfcQPZBE9GUev155rmfpNlOR\nPXBDakhmMylVyI2e8JpaciW1u2TW8j0UuPDdf7/gpb837eoNDEdHEVztqqxSPAyvdSKgjQl6JIAF\n+4YiWmeNgJFdo6myllsuPrWX9G3p+fj29kAtDMlwTulJTV9lT6dThjNVTYQ3qnitiPN6OSV6ovmZ\nTqnQ0YHkSmp3yagFMyifIjeib0nTN34mx3n/LeT57ljOzC6rn7hT0tZFiFjHik4QOSXmXV7a4cXb\nHtO7pZFL/qJPFvTVwrD0cUqZbSYNUbIk4sLLEjd6JBXyzg/gK++iG1Hiaw9X9GkEufJKO6U48MPn\nOrq6Z9JLGDkIJQADkvMgFJCITLsEW+InLJL+iA5/T1YbfkFFeOPn+cPwsmJyoB2PTz1+GF52MQRq\nioGj8yuHIjglTff8ysqjKJyhxckmRU5JC+Gs68Z3f7N+70m3lPaLpvlHXBTvKR1aGIleTimjmpJy\nef1KxD9WJL5FZEu5Ecbkx/FXSjee6ZNIj/zjaeLKINIAH01y558/fvfs0e3HOM3vT4AuR7UBf55h\nlJA+I6VhGJPAnNIwCoY5pWEUDHNKwygY5pSGUTDMKQ2jYJhTGkbBMKc0jIJhTmkYBcOc0jAKhjml\nYRQMc0rDKBjmlIZRMMwpDaNgmFMaRsEwpzSMgmFOaRgFw5zSMApGpbJkGEaRMKc0jIJhTmkYBcOc\n0jAKhjmlYRQMc0rDKBjmlIZRMMwpDaNgmFMaRsEwpzSMgmFOaRgFw5zSMAqGOaVhFAxzSsMoGOaU\nhlEwzCkNo2CYUxpGwTCnNIyCYU6ZycU/nE+R3y479+L1r35r6fTrF+7ob36DXHvxu09NlGvHP6OZ\np/1WktdO0X2f/Rb5S3Imxq9/OHf0ot9IwPzurvzqklrZOy4ede6PSP1JTv/3+bhPCmlBj4o5ZTef\nj0MJsfqPq5yByv+o+w9+mhD88RfXfGqSXDvqGCiuvXjR5WihqWggCbcIejJBLrqjXB13r2Uz4rcX\nF68t/UW/TAkWGZNwytcqpcuuM3gcf/0fWpR0yrSgR2ZcTomxJOToHxBpOlMajjjnkwzp7nK6j9de\nuMxYNBnQUJ9a+u+o9uYv5HFAhI+yoeiAZC9d+zxZy/ac1taJmDus57VvqfJb5AHX3Gefmgyv3QtN\nXE435KJvPySesPjTL35PaGXv+Oz+0ITrjB0AxpBoYlrQozPGkZIuJ63i0HJZLVkcMYp3v0oQR0j3\nJPrDc4rplF4lMjjS7BFp1Cn1iIsv8k1VxgXCnBczxBsKXOAAA4NK5Ql/5Jxl5eRiNFBDslmB7dcw\n7pHfYUUJrewZGPz8uIdhsWsETDllT0HvlN1wSgo57AAGQKDu9rvuVX+lF0YiPp04qhAk2hZxXOM5\nOoeGXvNx82h39JwIiH7haIOokYh24K/f/qN8O6e1F/3QOinQTj8kMnRrKslrP0URjtJrMw/bZVCn\nD12w2K6RMOWUvQS9Y3bFKXXe6vsitxXob6/T0RC54SCEGWJ4UEFAa3wqIorbf+GqDaM9Deo3uVFy\nGtE0+z7A3pGwmC6nFP6CuaSmtae7TWxviTXe7ZQyw4rni7/qDamuw3afRNMGO6XQJeidsztOibbG\nrRUPvbh0OT32Y8DxB59+gT08ptBO+VuGpC9LVPmsN34mO43F9VZ/p5SJmE8JR9OT3L0HxtvTKQkv\nc/SiM7xWyzxsd+GdBJ8c0im7BL1z9sAp9Z5Uh82ejibor+UOHA8psFNey5im/qUNRl+5ztDYXgJ5\n+rsmdMpsSab69HvecJ4bmIWfP8MpM4WHqzj2RKJ6jO7bKzDR87PRLAfMdMq0oEdgd5xS3DCeWSf2\neC5GJpGSuM+bPB1tSV3eeP6QYBL5wKRbD5GrwHElEN2bSvFX8hrydMatxD0GccQ3FM4XG0sCOGtK\n7pOQ8cUodByNwl5MplOmBD0Ku+KUEHfqTlW8R7nmvy/mnZ8fwCkjl/wt/p77L865hfSNn8nxWr/0\nwzod/0Iupu4dfu42sD0nnC1hnT20v+7w1YlYCLxS1H+x41tTIcsp04Iehd1wSl4i+K9ElGiPgp54\n4hkUt7I1Mwn4jZiPdtdk1Pf4wTH+8pLwxs/pzxOfDbIdvy79+jm890cpc41LtxeIfFEQEf7LbThj\n4bV7fe3af1E4Q4tp4pgxfv5t6drvWKTxPdpjcG37+9Lp6NkBWndoqadx2Xs0vC7LFPRIjMspEwPe\n0dfhwwOCzwXql/r1hyIZAreK45SGMUHGOFIahjEOzCkNo2CYUxpGwTCnNIyCYU5pGAXDnNIwCoY5\npWEUDHNKwygY5pSGUTDMKQ2jYJhTGkbBMKc0jIJhTmkYBcOc0jAKhjmlYRQMc0rDKBjmlIZRMMwp\nDaNgVCrThmEUCXNKwygY5pSGUTDMKQ2jYJhTGkbBMKc0jIJhTmkYBcOc0jAKhjmlYRQMc0rDKBjm\nlIZRMMwpDaNgmFMaRsEwpzSMgmFOaRgFw5zSMAqGOaVhFAxzSsMoGOaUhlEwvFM6ZfmBbE1/0c2b\nutXF3dkr3L1889gHnzMYX6Rzl3wGOebz3DmfMZAHX24u4/grs2zpuS+aOWbWLrF7cdkPZlml35ie\nnnWz05fclTW/iWYM3/zdZO3K8rnpD1dCHXZwLlLnAwrcc1azJsUlN7sGI5j1mxGzvnnv/fY9v02S\n9rN39Grp9F22LekoH7SZ7p7fHoFopFw7my7q3hWf6OQ9jvIW+QDG2sMGsuCZID7hnAp/aJOmY4fO\nsMZzd8cpAZqaLHsNdfnk9BVRAQ4IvfJer9i1t7x3qrFwnYZxxbdz+V4o8HsJXUyAD8vuLteQrqxD\nPrizl9amP0gYl6h/bPmSj/4P8tj66PRqqXA35ZQfMo7YKfH09aYPTz4Sfck2NRnbonixxiFkOR4z\n+vNFq4iOXzurI/SQTik+nYyTN3fPKWEQqbJRs0/5ESc64MEYlDAOIB0vx4wgvbZ8LBopYe+eS+6Y\nT00EWLi3MQgzGR2uhBs+NK7FSj+77BN7Ss+WCvEcBGCc3Mn8MZuEU57zs4SzorVsp1TH9RtA559D\nNgJF3uTh4Zzp7IedOKWM5Glzm52AUyJJyeAAccbZxDR2knDS5JOQcYdEjy1/SJuOsJY5pO4dsCUv\n4+62KRiD0i7wfjIRsH9Lk3lICzuYP2aQckoO04RT+cgpJQTPumWGK60z0awoY00cWgYzeJ02CYaL\n3nCOq3M9FplwrVkImFuhCV1aPntu+hyOhrOS9OladKb/dtYzBvo45SWpRCexH0QqRQCtCtUCp0wH\nqyuc2XSb071hg+kuAVPw6qQVaSrNlY4LyAcZ13R7Qf+WdkuWBpnnaj3tlKJc8iB0SraCO6BpuJKY\nf0rlksF28kBpHK+/VJiShbMZxUOnlAmvlHCMC274DtOrkSVVSEb6dBljQ9mk6axnDPRxSuw865Zx\n2c8El103fiYBGhxaRodTPlChQUhp0zk2oVsmEaIzgQrUVIqbnePN8oTuS/VvaZdkQVbe8HQ6pegU\nXPFOyXSYe47zCZBUuWTwUDZXmy5jGhOSlWibFEnPodOek+FSNrTiBzc5wn6Q6iUjffogp0zUMwb6\nOqVnbVkO6brxMxESVgBJJa4V3/s5auIA4cNkbpkkQDtjU+++VvywHN57DZmd1H2p/i3tlKwAT/Gp\nEeh2SrmnGlo5Kkx5gsw+E02Q/RJy4yNlrGNKshK2rX6ujn1Og56mJQkrf4/xpmOkjE7XITwM7nqY\nW5ZLjM56xsAQTnlMb1ihcnar84Q9B5rxqXRbKZuYWHVXJhtEADTqRZYlvHtdMeNu9A3JXtO/pd4C\nOsjKG5YMp/QOIIXKuJaQhc4+44AlV5LSTPGM2CmjrEQf/OAr+/31jCS1Yh6NS4bo7M7TZUc8f5GR\nU/d21jMGOoWPCnzKs3YllErklJO9CwtN6fiIoBdrMgZCSprJlwLcNJ4NRx2dbCSJ7p+tRWpYW57c\nfak+Le2SrDI79HcSGSScMqmlK2FF4gp6ef1e/Ij3X5fDOwTc62sXzxBroLvE15QJ2/ZOKUX4yniE\nnhUeLBXKvs7T1/iVftT9yTrl3fhyB04ACZzNUMzegnhJQX5Y9k17cDZ10QghJVo4qVsmab5ok96H\njeFMiWu9x69Etj3R+1IdLV27mZBfUrLvl9+jwR++5DPH0CkfYMw7FgmAc1hfEXSrRBo+B3+4Aqfi\nt7vLX8JzxDOOzX6gRP3dV/m+5EooyjVs+hrCLxjlAYDwEK3nnjilVJY+XbiLg87yi+QPl3i4/xY8\n48BcSFeIH3HE/0Fs1FdSc6tLV/yNnwmzNrvszkYK6euUk/m+r5u7CLTRswzeKdUCPNHV8YS/VE23\nNOGUvp3eoulG7mbSkUYhHilzIpYcidcwjFExpzSMgmFOaRgFY0xOGV2GJa5bDMMYhbGNlIZhjAdz\nSsMoGOaUhlEwzCkNo2CYUxpGwTCnNIyCYU5pGAXDnNIwCoY5pWEUDHNKwygY5pSGUTDMKQ2jYJhT\nGkbBMKc0jIJhTmkYBaNSmTEMo0iYUxpGwTCnNIyCYU5pGAXDnNIwCoY5pWEUDHNKwygY5pSGUTDM\nKQ2jYJhTGkbBMKc0jIJhTmkYBcOc0jAKhjmlYRQMc0rDKBjmlIZRMMwpDaNgmFMaRsEwpxzMBf2R\n6guysfD2grvwVpKeE4d9ohicPOzcmTt+I8XCn2dO+OTMzB3tlDDhDlCkc99e+a2YhW+Q/Jk/F/zm\nzMyrb3No7Em/NRnYhgtv4zYluHPY+VROduiUf4oSxSa/3oHI1DqvQlZMv7rDxGFt8dcL7vBX7Dtx\n+NXJhC3gpAt3oICv/8x9+/pqbrISHgrvk0669Y87A2txLrL6k65QXbjD9s3MvHXfZDPm5Im3UE6k\niFe+U0Kmie0VC2fcVa7m5mAtCRbEqMictu/V3NtXM6/eImNyEv86N8fgcdKd6ZTZhbdn0DK/kZOd\njpQnKKVwoFiY8ylKSnO/MfUPEjgwlN2d0BYg/4RdyGbxnTI1LJ7UbqJzuj1zWHygMHxzc5o44Qf2\nJGh8JPwTkQf8EweYSYDo8Kck0LpkQxbCLQz80qdXYZiZS5jQHoPphcoNBt89ssO4fSonozslZXSy\nyykhWqDrKJp8VSnKUamp0p3CO+WCjJNh8GEXvFNKw7/OMcgXBxgNAyK4GqVikk4Z8bVrTN1bIF9v\nJgjRieHnbRQ1zoSBxhOOnHsPAoiPwZgrdUdjGIpP5WRkp7yT1G/slHKpgiDtp0fJKwWd+qa98K1s\nyg7s+XrYXfgqZXEzSkilE4uOJ+/I6K8RBspgN8/oOPRP1yRmwkBQfnxhUNRUTKZTXkhb/F6DNoVD\nOhofxr4U6RH0Tscsdy+BRYYRTOyygwyRj8aITvn1REq/kVN+ZUJiyKvokuCEd0zd0nQHcv6f/8iw\n5KfAHIIkm32/OjGX9DDWSDcw5b6DBlI3r+Y471rApVr2fZUJ4MUFhnXKb922tadAxWGbejjliUQL\naQ+JGdhek2ghmlE4p7x6ptspyZkTf0Zj44I4lyAzKU3Krk7kfE5sT0gcxGWE+MAFXoMiki9MNpoL\nFzoN+u0F2sY3f+OnGNNYBMKdOeXV7knu3oLpU3+nPNPpgrSqCQ2WsMsiO2XP6WsHJ+V4dTgdOjVf\nyxFYTjQkenjohZlvf0ri28we3wVnY0iqQyfTBr2g939g51yjN9yaDL61bAgMVu+aZI6KGXlz3beD\n9oAohstlThhxIcQuPWdNVnG5nGVqewDmS+EtEWl8B1l5I5HvRg+Chyy7nfJtfPtABkysGbwTQwqG\nl2iz0yllFnwBZet0eMLRXPgzFZ7/lDvj0nDvlHsbN3oAE/dW80/GcNLtlN8y7iHuMbAObSjsIbT4\nkK9zmdcFk5uXXAgjCAKDj34JYKo+lZPRnVL41tMpE/Mi7JXD5DIzvnXGc7wtdzql3BSS/jNRhG8d\nvnkvFBaiMJG+8TN54JVisFh3R4kup7yTYVl7jlwAyLojYkQu+eptSrqTbPUFb9YX0tauwFR9Kic7\ndUpe5UUNujrnb4zJYJgaz+hmXnbwxfCErzw9FCnP6eWUnL5rAEUUmGA050jNK9szyWHnamJOxRs/\nC4cn/LVCkm/u28LCP8m7hKHweY2felhjoRDhjl/In5w5eSEUKm0Bq5N6taMw0LD1fy7MXE0/TrXX\n3HFnXmGeFF7owjqjUMLxYzzhYkdOKcNkGjQukRvL6y299eRhSPbE27RT3fkmJ8ydOKzfhwA5FyQt\nRm5tgoXsKYxhlJadjpSGYewy5pSGUTDMKQ2jYJhTGkbBMKc0jIJhTmkYBcOc0jAKhjmlYRQMc0rD\nKBjmlIZRMMwpDaNgmFMaRsEwpzSMgmFOaRgFw5zSMAqGOaVhFAxzSsMoGOaUhlEoZmb+D4Hvmk2Z\n4FWUAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 12,
     "metadata": {
      "image/png": {
       "width": 400
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image('./图片3.png',width=400)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "策略回测效果如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n6rAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x104da898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y1=data_return.loc[:,'index_return']\n",
    "y2=data_return.loc[:,'return']\n",
    "y3=data_return_cf.loc[:,'return']\n",
    "x=pd.to_datetime(data1['date'])\n",
    "#plt.plot(x,y)\n",
    "#y = np.linspace(0,1,224)\n",
    "plt.xlabel('time')\n",
    "plot1=plt.plot(x,y1,'r-',label = 'HS300')\n",
    "plot2=plt.plot(x,y2,'b-',label = 'PA80')\n",
    "plot3=plt.plot(x,y3,'g-',label = 'PA80NEW')\n",
    "plt.legend(loc='best')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 因子的添加"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "原有策略：$$0.3EPSGrw+0.25ForwardEP+0.2ROE+0.15NeOprMarGr+0.1DY24$$  \n",
    "+*因子*1：$$0.0092EPSGrw+0.1599ForwardEP+0.4416ROE+0.2273NeOprMarGr+0.0931DY24+0.0688BPS$$  \n",
    "\n",
    "+*因子1、因子2*：$$0.0084EPSGrw+0.1458ForwardEP+0.4026ROE+0.2072NeOprMarGr+0.0849DY24+0.0628BPS+0.0883PB$$  \n",
    "+*因子1、因子2、因子3*：$$0.0062EPSGrw+0.1080ForwardEP+0.2981ROE+0.1535NeOprMarGr+0.0629DY24+0.0465BPS+0.0654PB+0.2594ROIC$$  \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "selecting  2017-01-03\n",
      "selecting  2017-02-07\n",
      "selecting  2017-03-07\n",
      "selecting  2017-04-06\n",
      "selecting  2017-05-05\n",
      "selecting  2017-06-06\n",
      "selecting  2017-07-04\n",
      "selecting  2017-08-01\n",
      "selecting  2017-08-29\n",
      "selecting  2017-09-26\n",
      "selecting  2017-10-31\n",
      "selecting  2017-11-28\n"
     ]
    }
   ],
   "source": [
    "r = [0.0092,0.1599,0.4416,0.2273,0.0931,0.0688]\n",
    "select1,code_list_set1,trade1,change1 = f_1(start,stop,r)\n",
    "value_close1,stock_close1,delete_all1,add_all1 = f_2(select1,code_list_set1,trade1,change1,80,start,stop)\n",
    "\n",
    "index = '000300.SH'\n",
    "top=80\n",
    "index_value=w.wsd(index,'close',start,stop).Data[0]\n",
    "datelist = [dt.strftime('%Y-%m-%d') for dt in trade1]\n",
    "changelist = [dt.strftime('%Y-%m-%d') for dt in change1]\n",
    "index_downlist,index_chglist=chg_drawdown(index_value)    \n",
    "data_return_factor1 = generate_df(value_close1,index_value,datelist,index,top)\n",
    "\n",
    "r = [0.0084,0.1458,0.4026,0.2072,0.0849,0.0628,0.0883]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>drawdown</th>\n",
       "      <th>index_chg</th>\n",
       "      <th>index_return</th>\n",
       "      <th>maxdrawdown</th>\n",
       "      <th>pct_chg</th>\n",
       "      <th>return</th>\n",
       "      <th>sharp_ratio</th>\n",
       "      <th>stdlist</th>\n",
       "      <th>stock_value</th>\n",
       "      <th>top</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2017-01-03</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>7.991924e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2017-01-04</td>\n",
       "      <td>0.012524</td>\n",
       "      <td>0.007805</td>\n",
       "      <td>0.007805</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.012524</td>\n",
       "      <td>0.012524</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.092013e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2017-01-05</td>\n",
       "      <td>0.000892</td>\n",
       "      <td>-0.000155</td>\n",
       "      <td>0.007648</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.000892</td>\n",
       "      <td>0.011621</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.084794e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2017-01-06</td>\n",
       "      <td>0.003660</td>\n",
       "      <td>-0.005975</td>\n",
       "      <td>0.001627</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.002771</td>\n",
       "      <td>0.008818</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.062395e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2017-01-09</td>\n",
       "      <td>0.003852</td>\n",
       "      <td>0.004850</td>\n",
       "      <td>0.006485</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.007540</td>\n",
       "      <td>0.016424</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.123186e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2017-01-10</td>\n",
       "      <td>0.001115</td>\n",
       "      <td>-0.001674</td>\n",
       "      <td>0.004801</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.001115</td>\n",
       "      <td>0.015291</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.114128e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2017-01-11</td>\n",
       "      <td>0.009314</td>\n",
       "      <td>-0.007080</td>\n",
       "      <td>-0.002313</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.008208</td>\n",
       "      <td>0.006958</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.047528e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2017-01-12</td>\n",
       "      <td>0.015947</td>\n",
       "      <td>-0.005060</td>\n",
       "      <td>-0.007361</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.006695</td>\n",
       "      <td>0.000216</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>7.993649e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2017-01-13</td>\n",
       "      <td>0.013486</td>\n",
       "      <td>0.000690</td>\n",
       "      <td>-0.006677</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.002501</td>\n",
       "      <td>0.002717</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.013640e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2017-01-16</td>\n",
       "      <td>0.012443</td>\n",
       "      <td>-0.000141</td>\n",
       "      <td>-0.006816</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.001057</td>\n",
       "      <td>0.003777</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.022110e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2017-01-17</td>\n",
       "      <td>0.009625</td>\n",
       "      <td>0.002082</td>\n",
       "      <td>-0.004749</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.002853</td>\n",
       "      <td>0.006641</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.045000e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2017-01-18</td>\n",
       "      <td>0.007191</td>\n",
       "      <td>0.003911</td>\n",
       "      <td>-0.000856</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.002458</td>\n",
       "      <td>0.009115</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.064773e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2017-01-19</td>\n",
       "      <td>0.008250</td>\n",
       "      <td>-0.003017</td>\n",
       "      <td>-0.003871</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.001067</td>\n",
       "      <td>0.008039</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.056167e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2017-01-20</td>\n",
       "      <td>0.003823</td>\n",
       "      <td>0.007689</td>\n",
       "      <td>0.003788</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.004464</td>\n",
       "      <td>0.012538</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.092129e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2017-01-23</td>\n",
       "      <td>0.004015</td>\n",
       "      <td>0.002740</td>\n",
       "      <td>0.006539</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.000193</td>\n",
       "      <td>0.012343</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.090569e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2017-01-24</td>\n",
       "      <td>0.000377</td>\n",
       "      <td>0.000110</td>\n",
       "      <td>0.006649</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.004410</td>\n",
       "      <td>0.016808</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.126250e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2017-01-25</td>\n",
       "      <td>0.000562</td>\n",
       "      <td>0.003404</td>\n",
       "      <td>0.010076</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.000562</td>\n",
       "      <td>0.017379</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.130817e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2017-01-26</td>\n",
       "      <td>0.001680</td>\n",
       "      <td>0.003571</td>\n",
       "      <td>0.013684</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.001680</td>\n",
       "      <td>0.019088</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.144475e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2017-02-03</td>\n",
       "      <td>0.002618</td>\n",
       "      <td>-0.006927</td>\n",
       "      <td>0.006662</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.002618</td>\n",
       "      <td>0.016420</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.123153e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>2017-02-06</td>\n",
       "      <td>0.003574</td>\n",
       "      <td>0.002590</td>\n",
       "      <td>0.009269</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.000958</td>\n",
       "      <td>0.015446</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.115369e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>2017-02-07</td>\n",
       "      <td>0.004839</td>\n",
       "      <td>-0.002229</td>\n",
       "      <td>0.007019</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.001269</td>\n",
       "      <td>0.014157</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.105068e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>2017-02-08</td>\n",
       "      <td>0.000187</td>\n",
       "      <td>0.005230</td>\n",
       "      <td>0.012285</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.004674</td>\n",
       "      <td>0.018897</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.142951e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>2017-02-09</td>\n",
       "      <td>0.007240</td>\n",
       "      <td>0.003844</td>\n",
       "      <td>0.016176</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.007429</td>\n",
       "      <td>0.026467</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.203443e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>2017-02-10</td>\n",
       "      <td>0.003909</td>\n",
       "      <td>0.005063</td>\n",
       "      <td>0.021321</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.003909</td>\n",
       "      <td>0.030479</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.235509e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>2017-02-13</td>\n",
       "      <td>0.008460</td>\n",
       "      <td>0.006676</td>\n",
       "      <td>0.028139</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.008460</td>\n",
       "      <td>0.039197</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.305185e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>2017-02-14</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>-0.000137</td>\n",
       "      <td>0.027998</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>0.039204</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.305241e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>2017-02-15</td>\n",
       "      <td>0.006920</td>\n",
       "      <td>-0.004101</td>\n",
       "      <td>0.023782</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.006920</td>\n",
       "      <td>0.032013</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.247770e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>2017-02-16</td>\n",
       "      <td>0.000590</td>\n",
       "      <td>0.005617</td>\n",
       "      <td>0.029533</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.007562</td>\n",
       "      <td>0.039817</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.310139e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>2017-02-17</td>\n",
       "      <td>0.003620</td>\n",
       "      <td>-0.005665</td>\n",
       "      <td>0.023701</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.003620</td>\n",
       "      <td>0.036053</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.280059e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>2017-02-20</td>\n",
       "      <td>0.011444</td>\n",
       "      <td>0.014599</td>\n",
       "      <td>0.038647</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.015119</td>\n",
       "      <td>0.051717</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>8.405241e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>194</th>\n",
       "      <td>2017-10-23</td>\n",
       "      <td>0.003935</td>\n",
       "      <td>0.001005</td>\n",
       "      <td>0.176101</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.003594</td>\n",
       "      <td>0.242762</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.932062e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>2017-10-24</td>\n",
       "      <td>0.004120</td>\n",
       "      <td>0.007275</td>\n",
       "      <td>0.184658</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.000185</td>\n",
       "      <td>0.242532</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.930220e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>2017-10-25</td>\n",
       "      <td>0.001857</td>\n",
       "      <td>0.004433</td>\n",
       "      <td>0.189910</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.002272</td>\n",
       "      <td>0.245355</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.952782e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>2017-10-26</td>\n",
       "      <td>0.001085</td>\n",
       "      <td>0.004181</td>\n",
       "      <td>0.194884</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.000773</td>\n",
       "      <td>0.246318</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.960476e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>2017-10-27</td>\n",
       "      <td>0.000819</td>\n",
       "      <td>0.007110</td>\n",
       "      <td>0.203379</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.000266</td>\n",
       "      <td>0.246650</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.963130e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>2017-10-30</td>\n",
       "      <td>0.003771</td>\n",
       "      <td>-0.003045</td>\n",
       "      <td>0.199716</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.002954</td>\n",
       "      <td>0.242967</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.933697e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>2017-10-31</td>\n",
       "      <td>0.002066</td>\n",
       "      <td>-0.000749</td>\n",
       "      <td>0.198817</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.001711</td>\n",
       "      <td>0.245094</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.950695e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>201</th>\n",
       "      <td>2017-11-01</td>\n",
       "      <td>0.003839</td>\n",
       "      <td>-0.002520</td>\n",
       "      <td>0.195796</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.001776</td>\n",
       "      <td>0.242882</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.933019e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>202</th>\n",
       "      <td>2017-11-02</td>\n",
       "      <td>0.010188</td>\n",
       "      <td>0.000128</td>\n",
       "      <td>0.195949</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.006373</td>\n",
       "      <td>0.234961</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.869713e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>203</th>\n",
       "      <td>2017-11-03</td>\n",
       "      <td>0.017690</td>\n",
       "      <td>-0.001110</td>\n",
       "      <td>0.194622</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.007580</td>\n",
       "      <td>0.225600</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.794905e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204</th>\n",
       "      <td>2017-11-06</td>\n",
       "      <td>0.021348</td>\n",
       "      <td>0.007061</td>\n",
       "      <td>0.203057</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.003723</td>\n",
       "      <td>0.221037</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.758435e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>205</th>\n",
       "      <td>2017-11-07</td>\n",
       "      <td>0.019265</td>\n",
       "      <td>0.008296</td>\n",
       "      <td>0.213037</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.002128</td>\n",
       "      <td>0.223635</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.779200e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206</th>\n",
       "      <td>2017-11-08</td>\n",
       "      <td>0.018086</td>\n",
       "      <td>-0.001539</td>\n",
       "      <td>0.211170</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.001202</td>\n",
       "      <td>0.225106</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.790956e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>207</th>\n",
       "      <td>2017-11-09</td>\n",
       "      <td>0.017480</td>\n",
       "      <td>0.006891</td>\n",
       "      <td>0.219516</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.000617</td>\n",
       "      <td>0.225863</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.797000e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>208</th>\n",
       "      <td>2017-11-10</td>\n",
       "      <td>0.015712</td>\n",
       "      <td>0.008835</td>\n",
       "      <td>0.230291</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.001800</td>\n",
       "      <td>0.228069</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.814634e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>209</th>\n",
       "      <td>2017-11-13</td>\n",
       "      <td>0.011292</td>\n",
       "      <td>0.003931</td>\n",
       "      <td>0.235126</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.004491</td>\n",
       "      <td>0.233584</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.858707e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>210</th>\n",
       "      <td>2017-11-14</td>\n",
       "      <td>0.011765</td>\n",
       "      <td>-0.006958</td>\n",
       "      <td>0.226533</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.000478</td>\n",
       "      <td>0.232994</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.853990e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>211</th>\n",
       "      <td>2017-11-15</td>\n",
       "      <td>0.015935</td>\n",
       "      <td>-0.006265</td>\n",
       "      <td>0.218849</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.004220</td>\n",
       "      <td>0.227790</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.812407e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>212</th>\n",
       "      <td>2017-11-16</td>\n",
       "      <td>0.011313</td>\n",
       "      <td>0.007694</td>\n",
       "      <td>0.228227</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.004697</td>\n",
       "      <td>0.233557</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.858494e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>213</th>\n",
       "      <td>2017-11-17</td>\n",
       "      <td>0.019422</td>\n",
       "      <td>0.003858</td>\n",
       "      <td>0.232965</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.008201</td>\n",
       "      <td>0.223440</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.777640e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>214</th>\n",
       "      <td>2017-11-20</td>\n",
       "      <td>0.014159</td>\n",
       "      <td>0.005577</td>\n",
       "      <td>0.239842</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.005367</td>\n",
       "      <td>0.230007</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.830120e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>215</th>\n",
       "      <td>2017-11-21</td>\n",
       "      <td>0.006857</td>\n",
       "      <td>0.017826</td>\n",
       "      <td>0.261943</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.007406</td>\n",
       "      <td>0.239116</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.902923e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>216</th>\n",
       "      <td>2017-11-22</td>\n",
       "      <td>0.004937</td>\n",
       "      <td>0.002339</td>\n",
       "      <td>0.264895</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.001934</td>\n",
       "      <td>0.241513</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.922075e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>217</th>\n",
       "      <td>2017-11-23</td>\n",
       "      <td>0.017627</td>\n",
       "      <td>-0.029608</td>\n",
       "      <td>0.227444</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.012754</td>\n",
       "      <td>0.225679</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.795533e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>218</th>\n",
       "      <td>2017-11-24</td>\n",
       "      <td>0.009395</td>\n",
       "      <td>0.000440</td>\n",
       "      <td>0.227985</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.008380</td>\n",
       "      <td>0.235950</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.877620e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>219</th>\n",
       "      <td>2017-11-27</td>\n",
       "      <td>0.013264</td>\n",
       "      <td>-0.013220</td>\n",
       "      <td>0.211751</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.003906</td>\n",
       "      <td>0.231122</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.839035e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>220</th>\n",
       "      <td>2017-11-28</td>\n",
       "      <td>0.016984</td>\n",
       "      <td>0.001451</td>\n",
       "      <td>0.213509</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.003770</td>\n",
       "      <td>0.226481</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.801945e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>221</th>\n",
       "      <td>2017-11-29</td>\n",
       "      <td>0.002848</td>\n",
       "      <td>-0.000511</td>\n",
       "      <td>0.212890</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>0.014380</td>\n",
       "      <td>0.244119</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.942901e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>222</th>\n",
       "      <td>2017-11-30</td>\n",
       "      <td>0.012172</td>\n",
       "      <td>-0.011755</td>\n",
       "      <td>0.198632</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.009350</td>\n",
       "      <td>0.232486</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.849932e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>223</th>\n",
       "      <td>2017-12-01</td>\n",
       "      <td>0.012889</td>\n",
       "      <td>-0.001988</td>\n",
       "      <td>0.196249</td>\n",
       "      <td>0.028912</td>\n",
       "      <td>-0.000726</td>\n",
       "      <td>0.231591</td>\n",
       "      <td>2.686508</td>\n",
       "      <td>0.075759</td>\n",
       "      <td>9.842783e+06</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>224 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           date  drawdown  index_chg  index_return  maxdrawdown   pct_chg  \\\n",
       "0    2017-01-03  0.000000   0.000000      0.000000     0.028912  0.000000   \n",
       "1    2017-01-04  0.012524   0.007805      0.007805     0.028912  0.012524   \n",
       "2    2017-01-05  0.000892  -0.000155      0.007648     0.028912 -0.000892   \n",
       "3    2017-01-06  0.003660  -0.005975      0.001627     0.028912 -0.002771   \n",
       "4    2017-01-09  0.003852   0.004850      0.006485     0.028912  0.007540   \n",
       "5    2017-01-10  0.001115  -0.001674      0.004801     0.028912 -0.001115   \n",
       "6    2017-01-11  0.009314  -0.007080     -0.002313     0.028912 -0.008208   \n",
       "7    2017-01-12  0.015947  -0.005060     -0.007361     0.028912 -0.006695   \n",
       "8    2017-01-13  0.013486   0.000690     -0.006677     0.028912  0.002501   \n",
       "9    2017-01-16  0.012443  -0.000141     -0.006816     0.028912  0.001057   \n",
       "10   2017-01-17  0.009625   0.002082     -0.004749     0.028912  0.002853   \n",
       "11   2017-01-18  0.007191   0.003911     -0.000856     0.028912  0.002458   \n",
       "12   2017-01-19  0.008250  -0.003017     -0.003871     0.028912 -0.001067   \n",
       "13   2017-01-20  0.003823   0.007689      0.003788     0.028912  0.004464   \n",
       "14   2017-01-23  0.004015   0.002740      0.006539     0.028912 -0.000193   \n",
       "15   2017-01-24  0.000377   0.000110      0.006649     0.028912  0.004410   \n",
       "16   2017-01-25  0.000562   0.003404      0.010076     0.028912  0.000562   \n",
       "17   2017-01-26  0.001680   0.003571      0.013684     0.028912  0.001680   \n",
       "18   2017-02-03  0.002618  -0.006927      0.006662     0.028912 -0.002618   \n",
       "19   2017-02-06  0.003574   0.002590      0.009269     0.028912 -0.000958   \n",
       "20   2017-02-07  0.004839  -0.002229      0.007019     0.028912 -0.001269   \n",
       "21   2017-02-08  0.000187   0.005230      0.012285     0.028912  0.004674   \n",
       "22   2017-02-09  0.007240   0.003844      0.016176     0.028912  0.007429   \n",
       "23   2017-02-10  0.003909   0.005063      0.021321     0.028912  0.003909   \n",
       "24   2017-02-13  0.008460   0.006676      0.028139     0.028912  0.008460   \n",
       "25   2017-02-14  0.000007  -0.000137      0.027998     0.028912  0.000007   \n",
       "26   2017-02-15  0.006920  -0.004101      0.023782     0.028912 -0.006920   \n",
       "27   2017-02-16  0.000590   0.005617      0.029533     0.028912  0.007562   \n",
       "28   2017-02-17  0.003620  -0.005665      0.023701     0.028912 -0.003620   \n",
       "29   2017-02-20  0.011444   0.014599      0.038647     0.028912  0.015119   \n",
       "..          ...       ...        ...           ...          ...       ...   \n",
       "194  2017-10-23  0.003935   0.001005      0.176101     0.028912  0.003594   \n",
       "195  2017-10-24  0.004120   0.007275      0.184658     0.028912 -0.000185   \n",
       "196  2017-10-25  0.001857   0.004433      0.189910     0.028912  0.002272   \n",
       "197  2017-10-26  0.001085   0.004181      0.194884     0.028912  0.000773   \n",
       "198  2017-10-27  0.000819   0.007110      0.203379     0.028912  0.000266   \n",
       "199  2017-10-30  0.003771  -0.003045      0.199716     0.028912 -0.002954   \n",
       "200  2017-10-31  0.002066  -0.000749      0.198817     0.028912  0.001711   \n",
       "201  2017-11-01  0.003839  -0.002520      0.195796     0.028912 -0.001776   \n",
       "202  2017-11-02  0.010188   0.000128      0.195949     0.028912 -0.006373   \n",
       "203  2017-11-03  0.017690  -0.001110      0.194622     0.028912 -0.007580   \n",
       "204  2017-11-06  0.021348   0.007061      0.203057     0.028912 -0.003723   \n",
       "205  2017-11-07  0.019265   0.008296      0.213037     0.028912  0.002128   \n",
       "206  2017-11-08  0.018086  -0.001539      0.211170     0.028912  0.001202   \n",
       "207  2017-11-09  0.017480   0.006891      0.219516     0.028912  0.000617   \n",
       "208  2017-11-10  0.015712   0.008835      0.230291     0.028912  0.001800   \n",
       "209  2017-11-13  0.011292   0.003931      0.235126     0.028912  0.004491   \n",
       "210  2017-11-14  0.011765  -0.006958      0.226533     0.028912 -0.000478   \n",
       "211  2017-11-15  0.015935  -0.006265      0.218849     0.028912 -0.004220   \n",
       "212  2017-11-16  0.011313   0.007694      0.228227     0.028912  0.004697   \n",
       "213  2017-11-17  0.019422   0.003858      0.232965     0.028912 -0.008201   \n",
       "214  2017-11-20  0.014159   0.005577      0.239842     0.028912  0.005367   \n",
       "215  2017-11-21  0.006857   0.017826      0.261943     0.028912  0.007406   \n",
       "216  2017-11-22  0.004937   0.002339      0.264895     0.028912  0.001934   \n",
       "217  2017-11-23  0.017627  -0.029608      0.227444     0.028912 -0.012754   \n",
       "218  2017-11-24  0.009395   0.000440      0.227985     0.028912  0.008380   \n",
       "219  2017-11-27  0.013264  -0.013220      0.211751     0.028912 -0.003906   \n",
       "220  2017-11-28  0.016984   0.001451      0.213509     0.028912 -0.003770   \n",
       "221  2017-11-29  0.002848  -0.000511      0.212890     0.028912  0.014380   \n",
       "222  2017-11-30  0.012172  -0.011755      0.198632     0.028912 -0.009350   \n",
       "223  2017-12-01  0.012889  -0.001988      0.196249     0.028912 -0.000726   \n",
       "\n",
       "       return  sharp_ratio   stdlist   stock_value  top  \n",
       "0    0.000000     2.686508  0.075759  7.991924e+06   80  \n",
       "1    0.012524     2.686508  0.075759  8.092013e+06   80  \n",
       "2    0.011621     2.686508  0.075759  8.084794e+06   80  \n",
       "3    0.008818     2.686508  0.075759  8.062395e+06   80  \n",
       "4    0.016424     2.686508  0.075759  8.123186e+06   80  \n",
       "5    0.015291     2.686508  0.075759  8.114128e+06   80  \n",
       "6    0.006958     2.686508  0.075759  8.047528e+06   80  \n",
       "7    0.000216     2.686508  0.075759  7.993649e+06   80  \n",
       "8    0.002717     2.686508  0.075759  8.013640e+06   80  \n",
       "9    0.003777     2.686508  0.075759  8.022110e+06   80  \n",
       "10   0.006641     2.686508  0.075759  8.045000e+06   80  \n",
       "11   0.009115     2.686508  0.075759  8.064773e+06   80  \n",
       "12   0.008039     2.686508  0.075759  8.056167e+06   80  \n",
       "13   0.012538     2.686508  0.075759  8.092129e+06   80  \n",
       "14   0.012343     2.686508  0.075759  8.090569e+06   80  \n",
       "15   0.016808     2.686508  0.075759  8.126250e+06   80  \n",
       "16   0.017379     2.686508  0.075759  8.130817e+06   80  \n",
       "17   0.019088     2.686508  0.075759  8.144475e+06   80  \n",
       "18   0.016420     2.686508  0.075759  8.123153e+06   80  \n",
       "19   0.015446     2.686508  0.075759  8.115369e+06   80  \n",
       "20   0.014157     2.686508  0.075759  8.105068e+06   80  \n",
       "21   0.018897     2.686508  0.075759  8.142951e+06   80  \n",
       "22   0.026467     2.686508  0.075759  8.203443e+06   80  \n",
       "23   0.030479     2.686508  0.075759  8.235509e+06   80  \n",
       "24   0.039197     2.686508  0.075759  8.305185e+06   80  \n",
       "25   0.039204     2.686508  0.075759  8.305241e+06   80  \n",
       "26   0.032013     2.686508  0.075759  8.247770e+06   80  \n",
       "27   0.039817     2.686508  0.075759  8.310139e+06   80  \n",
       "28   0.036053     2.686508  0.075759  8.280059e+06   80  \n",
       "29   0.051717     2.686508  0.075759  8.405241e+06   80  \n",
       "..        ...          ...       ...           ...  ...  \n",
       "194  0.242762     2.686508  0.075759  9.932062e+06   80  \n",
       "195  0.242532     2.686508  0.075759  9.930220e+06   80  \n",
       "196  0.245355     2.686508  0.075759  9.952782e+06   80  \n",
       "197  0.246318     2.686508  0.075759  9.960476e+06   80  \n",
       "198  0.246650     2.686508  0.075759  9.963130e+06   80  \n",
       "199  0.242967     2.686508  0.075759  9.933697e+06   80  \n",
       "200  0.245094     2.686508  0.075759  9.950695e+06   80  \n",
       "201  0.242882     2.686508  0.075759  9.933019e+06   80  \n",
       "202  0.234961     2.686508  0.075759  9.869713e+06   80  \n",
       "203  0.225600     2.686508  0.075759  9.794905e+06   80  \n",
       "204  0.221037     2.686508  0.075759  9.758435e+06   80  \n",
       "205  0.223635     2.686508  0.075759  9.779200e+06   80  \n",
       "206  0.225106     2.686508  0.075759  9.790956e+06   80  \n",
       "207  0.225863     2.686508  0.075759  9.797000e+06   80  \n",
       "208  0.228069     2.686508  0.075759  9.814634e+06   80  \n",
       "209  0.233584     2.686508  0.075759  9.858707e+06   80  \n",
       "210  0.232994     2.686508  0.075759  9.853990e+06   80  \n",
       "211  0.227790     2.686508  0.075759  9.812407e+06   80  \n",
       "212  0.233557     2.686508  0.075759  9.858494e+06   80  \n",
       "213  0.223440     2.686508  0.075759  9.777640e+06   80  \n",
       "214  0.230007     2.686508  0.075759  9.830120e+06   80  \n",
       "215  0.239116     2.686508  0.075759  9.902923e+06   80  \n",
       "216  0.241513     2.686508  0.075759  9.922075e+06   80  \n",
       "217  0.225679     2.686508  0.075759  9.795533e+06   80  \n",
       "218  0.235950     2.686508  0.075759  9.877620e+06   80  \n",
       "219  0.231122     2.686508  0.075759  9.839035e+06   80  \n",
       "220  0.226481     2.686508  0.075759  9.801945e+06   80  \n",
       "221  0.244119     2.686508  0.075759  9.942901e+06   80  \n",
       "222  0.232486     2.686508  0.075759  9.849932e+06   80  \n",
       "223  0.231591     2.686508  0.075759  9.842783e+06   80  \n",
       "\n",
       "[224 rows x 11 columns]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_return_factor1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "selecting  2017-01-03\n",
      "selecting  2017-02-07\n",
      "selecting  2017-03-07\n",
      "selecting  2017-04-06\n",
      "selecting  2017-05-05\n",
      "selecting  2017-06-06\n",
      "selecting  2017-07-04\n",
      "selecting  2017-08-01\n",
      "selecting  2017-08-29\n",
      "selecting  2017-09-26\n"
     ]
    },
    {
     "ename": "IndexError",
     "evalue": "list index out of range",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-57-08f2db90ad2c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;36m0.0084\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.1458\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.4026\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.2072\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.0849\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.0628\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0.0883\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mselect1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mcode_list_set1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mtrade1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mchange1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mf_1\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstart\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mstop\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      3\u001b[0m \u001b[0mvalue_close1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mstock_close1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdelete_all1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0madd_all1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mf_2\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mselect1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mcode_list_set1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mtrade1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mchange1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m80\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mstart\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mstop\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mdata_return_factor2\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgenerate_df\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue_close1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mindex_value\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdatelist\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mtop\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0mdata_return_factor2\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m<ipython-input-40-91dcdce89fd5>\u001b[0m in \u001b[0;36mf_1\u001b[0;34m(start, stop, r)\u001b[0m\n\u001b[1;32m    116\u001b[0m         \u001b[0mselecti\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m    117\u001b[0m         \u001b[1;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtop\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m--> 118\u001b[0;31m             \u001b[0mselecti\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mfinal_result\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mj\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    119\u001b[0m     \u001b[1;31m#    select.append(selecti.keys())\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m    120\u001b[0m         \u001b[0mselect\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mselecti\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mIndexError\u001b[0m: list index out of range"
     ]
    }
   ],
   "source": [
    "r = [0.0084,0.1458,0.4026,0.2072,0.0849,0.0628,0.0883]\n",
    "select1,code_list_set1,trade1,change1 = f_1(start,stop,r)\n",
    "value_close1,stock_close1,delete_all1,add_all1 = f_2(select1,code_list_set1,trade1,change1,80,start,stop)\n",
    "data_return_factor2 = generate_df(value_close1,index_value,datelist,index,top) \n",
    "data_return_factor2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "***添加因子后，收益率分别为35.09%、45.20%、52.05%；最大回撤率分别为15.46%、15.49%、14.92%；Sharpe Ratio 分别为1.45、1.77、1.97。***\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    ">1. EPS只反映了当期、短时的业绩，具有偶然性和不确定性。引入***BPS指标***剔除了“非主营业务”带来的收入，剔除了短时欺骗性和暂时包装性，反映股东权益的含金量。  \n",
    "2. PE的上升也有可能是公司业绩的上下浮动导致的,且只考虑到了净利润，不适用于某些行业如金融机构。引入***PB指标***，通过账面价值进行计算，更具有普遍适用性。\n",
    "3. ROE可能包含非经常性损益，不具有代表性，可能过度使用了财务杠杆。引入***ROIC指标***，能够在计算过程中剔除非经常性损益的影响。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "各指标按照以下公式确定权重：$$\\frac{股票累计收益率}{股票最大回撤率}-\\frac{沪深300累计收益率}{沪深300最大回撤率}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "三种策略的回测对比："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1wAAAKICAMAAAEk5DvtAAAAAXNSR0IArs4c6QAAAARnQU1BAACx\njwv8YQUAAAJnUExURQAAADF2v3qKmgcHCGB6oO6ebigtM4Z+ipvD7zp3uPWTVSh91OSvlEOP2Rx2\n0POYXuKwlzM5QcqVevSVV8Db+UmS3OujePyIOYG06PiOSuyic1KX3Xyx5z2K2I9+grbV91CW3U55\nrOqle4J9ij9GTh940iR60+iqhv9mAGSh45F+f/uJPyZ1xrKAasvX6tfFwNLLz1qc4OGESuarieCK\nVjqJ2Jd/fTeF2CF2zM7S3drAtyJ1yRx30Sd3yiF50laa32Gg4uiERot9gy52wcKDYNLO073Y+Xav\n5vGHQS+C1jeI2eyOU/iPTEeQ25/I8PmMRa3O88+DVjV2veK0nIV+iHqv54V8iCJ3zXmJpmBseyV8\n0xYZHIyRpUWQ2sahkIe36w4QEs7T4lt5pN+3pOStkKXK8kuT3KiDdvOWXN2DTGd6m/uJPSN1yUlR\nXPGbY1SY3oS26piqv+ygcP2HOJV+fdnZ2Vl5peqngIh9hveST/qKQhp00C14x1yd4OuHRoqZrfqG\nOZPA7SuA1XSr5VVfaqN+c/CbZTGD1hh00JfA73Z8kXCp5cff+++daXWNrR90y9jCu+KymWyn5W96\nl/qLRBp10HCq5sjb9Sd909u9szSF14t9hsCBX216iXaRtpC97CR3yvqKQU6V3MrY72qn5Cl+1Yy7\n66eAcJl+ekGM2veRUfGZYfSVWu6da+atjfyIO/WSU2al4+yiddXIyiJ1yQAAAK6AbKB+dq3B2dHP\n2N25qOqlfv6GNz6L2fttEfeQTbTS9V+f4SB50anL9PmORxx0zt28rC6C1SAjKDOE1+ipg459gYh9\niFWFXqcAAADNdFJOUwD/nvf/x9T5kv7d6a7N+dWsy9LbgsfA+6Dpw8Ci0/yGwf++/ML177b/sv/1\n//+GlpC6/7Tv1fzZ+4qa/vf48by0////+46Epvvh18DnyZDtiv//qPyk//jerO3l0svBnO6I/aSw\njsX11//+9/+7z76ekcX9////uv/j8f33uPmX/5blqLP/zd//lP+qgMvZ/5iqrP/v+/+C65zb+/+l\nz5j688OEruea///P4dHZybL537DBkv////+JjKK8/9Hv5Yi284zr/6Dj3N24//vXmiRHAAAACXBI\n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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 16,
     "metadata": {
      "image/png": {
       "width": 400
      }
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image('./图片5.png',width=400)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
